且莫思身外,长近尊前。
ฅ'ω'ฅ♪
程序转化语义

程序转化语义 考虑以下代码 #include <bits/stdc++.h> using namespace std ; class Vector { public: static int cnt ; int x, y ; Vector(int x=0, int y=0){ this->x = x ; this->y...

指针语义

指针语义 首先观察以下代码 #include <bits/stdc++.h> using namespace std ; class A { public: int arr[100] ; void foo() { cout<<"A:"<<arr[10]<<'\n' ; } }...

全局对象

全局对象 考虑以下程序片段 Matrix identity ; int main() { // identity 必须在这被初始化 Matrix m1 = identity ; ... // identity 必须在这被摧毁 return 0 ; } 如果这种global obj存在constructor和destructor的话,我们说它需要静态初始化...

Schwartz counter

Schwartz counter Schwartz计数器 (以Jerry Schwartz的名字命名,当时他设计了IOStreams库的基础,现在已成为标准;请注意,不能将许多奇怪的选择归咎于他,因为这些选择已标记在原始设计上) 主要是为了控制 需要跨越模块做静态初始化 的 Obj 的相依顺序。 例如现在以下文件 Foo.h class Foo { Foo::Foo() ; } ; ...

Data member的存取

Data member的存取 参考以下这段代码 Point3d origin; origin.x=0.0 现在我们想知道x的存取成本是什么。 答案需要视x和Point3d如何声明而定。 x可能是个static member,也可能nonstatic。 而Point3d可能是个独立的class,也可能是单一继承而来,也可能是多重继承或虚拟继承而来。 除此之外,我们还希望知道通过以下两种方法进行存...

Data Member的布局

Data Member的布局 已知下面一组 data members: class Point3d { public: // ... private: float x; static List<Point3d *> *freeList; float y; static const int chunkSize=250; float z; }...

Data Member的绑定

Data Member的绑定 考虑下面的这段程序代码 //某个foo.h头文件,在此处含入 extern float x; //另一个文件 class Point3d { public: Point3d(float,float,float); // 问题:被传回的x是哪一个? float X() const {return x;} // 问题:被设定的x是哪一个? ...

Data语意学——重新学习cpp

Data语意学 考虑以下结构 class X{ }; class Y : public virtual X { }; class Z : public virtual X { }; class A : public Y , public Z { }; 上述X Y Z A没有任何一个class内含明显的数据。 试问他们的大小各自应该为多少? 结果是 X:1 Y:8 Z:8 A:12 特别地,...

关键词带来的差异

关键词带来的差异 关键词的差异主要是Cpp努力维护与C之间的兼容性而带来的 。 比如,如果Cpp独立于C,就不需要判断下面一行代码其实是一个 函数调用 而不是一个函数声明 //在此并不知道是一个declaration还是invocation int (*pf)(1024) ; //因为整数常量1024,知道了是一个invocation 在此出现了一种 “向前预览“ 的行为 而在下面的一个声明...

对象模式——重新学习Cpp

Cpp对象模式 Cpp中,Class data member分为 static 、nonstatic,Class member functions分为 static、nonstatic、virtual三种。 先给出一个Point声明 class Point { public: Point(float xval) ; virtual ~Point() ; float x() ...

关于Cpp对象——重新学习Cpp

关于Cpp对象 前言 在C语言中,“数据”和“处理数据的操作”是(或者说应当是)分开声明的, 也就是说,语言层面上并没有支持”数据与函数“之间的关联性/ 这种程序方法称为 程序性 的(procedural), 由一组”分布在各个以功能为导向的函数中“的算法所驱动, 处理的是共同的外部数据。 所以在C语言中经常能见到以下的函数模式。 void foo_1(struct point *output, ...

C与Cpp的区别——重新学习Cpp

C & CPP [TOC] Cpp和C的区别 Cpp是C的超集,兼容大部分C的语法的结构。 设计思想 CPP面向对象,具有封装、继承、多态三种特性; C是面向过程的结构化编程。 关键字 数量:C99有32个关键字,CPP98有63关键字。 具体 struct:C中不能放函数,只能放函数指针;Cpp中可以放函数 。 malloc:C中可以将其返回值赋给任意类型的...

游說萬乘苦不早,著鞭跨馬涉遠道。

阿凌的貓爬架

幸會,

激活Ubuntu

转到“设置”以激活Ubuntu。

R0's board.