文章分类 - C++
<<C++ Primer>> 读书笔记 6
摘要:尽管大多数对象可以通过运行适当的构造函数进行初始化,但是直接初始化简单的非抽象类的数据成员仍是可能的。对于没有定义构造函数并且其全体数据成员均为 public 的类,可以采用与初始化数组元素相同的方式初始化其成员(根据数据成员的声明次序来使用初始化式。):struct Data { int ival; char *ptr; }; // val1.ival = 0; val1.ptr = 0 Dat...
阅读全文
<<C++ Primer>> 读书笔记 2
摘要:对于 switch 结构,只能在它的最后一个 case 标号或 default 标号后面定义变量 在循环条件中定义的变量在每次循环里都要经历创建和撤销的过程。 应该将不需要修改的引用形参定义为 const 引用。普通的非 const 引用形参在使用时不太灵活。这样的形参既不能用 const 对象初始化,也不能用字面值或产生右值的表达式实参初始化。 既可以在函数声明也可以在函数定义中指定默认实...
阅读全文
<<C++ Primer>> 读书笔记 1
摘要:默认情况下,输出cerr不缓冲 默认情况下,写到clog是带缓冲的 默认情况下,cout是带缓冲的 内置类型变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都初始化成0,在函数体里定义的内置类型变量不进行自动初始化。 const对象默认为文件的局部变量,非const变量默认为extern。要使const变量能够在其他的文件中访问,必须显式地指定它为extern。 因为头文件包...
阅读全文
C++构造函数初始化顺序
摘要:C++构造函数按下列顺序被调用:(1)任何虚拟基类的构造函数按照它们被继承的顺序构造;(2)任何非虚拟基类的构造函数按照它们被继承的顺序构造;(3)任何成员对象的构造函数按照它们声明的顺序调用;(4)...
阅读全文
An unhandled exception has been caught by the VSW exception filter.
摘要:问题描述: 从CC打开.net 2003解决方案(*.sln)发生以下异常: An unhandled exception has been caught by the VSW exception filter. 解决方案: 删除CC下面的*.suo和*.ncb文件(这两个文件应该都是View-private File)。
阅读全文
物理的和逻辑的常量性
摘要:偶然有这种情况,一个成员函数在逻辑上是const,但它却仍需要改变某个成员的值。对于用户而言,这个函数看似没有改变其对象的状态,然而,它却可能更新了某些用户不能直接访问的细节。这通常被称为逻辑的常量性。例如,Date类可能有一个函数,它应返回一个用户可以用于打印的字符串表示。构造出这种表示可能是一个相对费时的操作,因此,保留一个副本,在重复需要的时候直接返回这个副本,这一做法也就有意义了,除非这个...
阅读全文
const成员函数不可以调用非const成员函数
摘要:const成员函数getI()调用非const成员函数f(),编译不通过。
阅读全文
const类型声明
摘要://s1 and s2 have same type, they're both strings that are const const string s1; string const s2; //cstr1, cstr2 and cstr3 are the same type, they're all const pointers to string string s; typedef st...
阅读全文
浙公网安备 33010602011771号