所有成员必须放在类的内部声明。好处是编译的时候就能知道分配多大的储存空间。、
const必须同时出现在类成员声明和定义处(包括函数后面的const)。与它刚好相反的是static,只能在放在声明处(如果放在了定义处,和C语言中static 表示internal linkage的含义有冲突了)。
inline只是一个编译提示,具体参见:
http://www.informit.com/blogs/30-C-Tips-in-30-Days-Tip-3-inline-Dos-and-Donts-
class定义后面必须加上分号是为了和struct保持一致,class后面能够定义变量。例如:
class Sales_item{/*......*/} accum,trans;
在const成员函数中,this的类型是一个指向const类类型对象的const指针。因此不能从const成员函数返回指向类对象的普通引用。
构造函数不能声明为const。
和java不一样,非static的类数据成员的初始化只能放在初始化列表(ctor initializer)中,在构造函数体执行前执行。
ctor initializer只在构造函数的定义中而不是声明中指定。
在ctor initializer中没有显示提及的每个成员,都使用与初始化变量相同的规则:对于类类型的成员,如果初始化列表没有显示初始化,则会隐式调用这些成员的默认构造函数,对于内置和复合类型,成员的初始值依赖于对象的作用域。
ctor initializer的执行顺序是定义成员的次序(这一点和java相同)。
和java不一样的是c++的构造函数之间的调用。例如:
class A{
public:
A():i(2){}
A(int i):i(i){
this->i+=2;
A();
}
int i;
};
A a(1); //只执行A(int i):i(i)的ctor initializer。A();被当成了普通函数处理。
java中this()必须写在第一行,c++没有这个限制。
c++和c语言中一样,能够在函数内部声明函数,这一点造成了用一个默认构造函数初始化一个命名对象时,不能加上(),否则编译器会把它当成了一个函数声明。
string s(); //声明了一个名为s,无参数,返回值为string类型的一个函数
对于static的数据成员,在类内部的说明只是declare而不是define,它们的定义放在类定义外部(成员定义隐含分配存储空间的意思,static成员的存储空间不属于它所在的class)。比较特殊的是integral or const enumeration类型的static const成员,它们的定义可以写在class定义的内部,但为了统一,建议还是在外部定义static成员。
刚看完这个的时候有点马虎,以为所有的static const成员都能够在类内部初始化,于定义了一个int数组,死活不能通过编译,把定义放在类外部就可以了
class A{
public:
static const int i[];
static const int i[]={1,2}; // error
};
const int A::i[]={1,2};
分享到:
相关推荐
学习C++的入门书籍,纸质清晰,有目录便于检索,很好的学习文档,分享给大家。
C++ Primer中文版--第四版, 可能已经重复了。这个pdf版本有较详细的目录
清晰可编辑版本,本人亲自根据chm版本制作。
C++ 最新经典入门教程,英文原版
C++Primer4th第四版中文版.pdf 高清版本
非常不错的英文版PDF!C++primer与TheC++ProgrammingLanguage(已上传)被誉为C++界的倚天屠龙!值得一看,本人也在研究,大家可以一起讨论!英文原版的是perfect的!!另有习题解答
C++ Primer Plus 6th CH 编程练习答案
【原书名】 C++ Primer (4th Edition) 【原出版社】 Addison Wesley/Pearson 【作者】 (美)Stanley B.Lippman,Josée LaJoie,Barbara E.Moo 【译者】 李师贤 蒋爱军 梅晓勇 林瑛 【丛书名】 图灵计算机科学丛书 ...
C++ Primer Plus - Examples Source Code, 6th Edition.zip 官网下载,完整版,不要积分。
c++ primer第1-16章读书报告,里面讲了c++ primer第五版的各种细节内容,并对之前学习的知识进行了回顾,也有各种举例说明。
C++ 在我多年以来断断续续学了好几遍,之前用《C++ 编程思想》也学过,但那本书过于陈旧了,用《C++ Primer 4th》也学过一段时间,由于书本过于沉溺细节,导致最终没法坚持下来。第五版我去年已经看过一遍了,对于...
这个是C++Primer 第4版习题解答(完整版)+源码。 C++ Primer 第四版(中英文对照阅读版).chm下载地址:http://download.csdn.net/source/3116404。
C++Primer(第4版)_课后习题答案
C++ Primer, Fourth Edition, provides a comprehensive introduction to the C++ language. As a primer, it provides a clear tutorial approach to the language, enhanced by numerous examples and other ...
C++Primer4th第四版中文版, 这个绝对是学习c++的经典中的经典, 权威之作
C++Primer4th中文,经典之作,学C++必备的书籍。这个版本的电子书还比较好~
该压缩文件包含C++ Primer 4th的pdf版本以及习题解答
c++ primer 4th answer(完整版)
C++是一门强大、难学、令人痛苦,但又是如此美妙的编程语言,在工业界和学术界都可以使用,《C++ Primer(第5版)》即针对初学者,也同样适用于有一定编程经验的读者,第5版配备了C++11新标准,是C++粉丝们书架上...
C++ Primer 4th 的详细习题解答