摘要:
类的成员函数后面加 const,表明这个函数不会对这个类对象的数据成员(准确地说是非静态数据成员)作任何改变。在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加 const,而对于改变数据成员的成员函数不能加 const。所以 const 关键字对成员函数的行为作了更加明确的限定:有 const 修饰的成员函数(指 const 放在函数参数表的后面,而不是在函数前面或者参数表内),只能读取数据成员,不能改变数据成员;没有 const 修饰的成员函数,对数据成员则是可读可写的。除此之外,在类的成员函数后面加 const 还有什么好处呢?那就是常量(即 const)对象可以调用 阅读全文
摘要:
原生指针auto_ptr在头文件<memory>中,auto_ptr角括号内放的是“原生指针所指对象”的型别,而不是原生指针的型别。auto_ptr如下用法,和原生指针一模一样:#include<iostream>#include<string>#include<memory>using namespace std;void func(){ auto_ptr<string> ps(new string("jjhou")); cout<<*ps<<endl;//输出jjhoucout<& 阅读全文
摘要:
简单说就是用在构造函数前面 禁止隐式类型转换比如class cls{explicit cls(int i){...}};另外有一个函数void f(cls obj){...}int i=0;这时候调用f(i)就是错误的没有explicit的话就可以用i隐式建立一个对象这样做(显示调用构造函数)就是对的:cls obj(i); 阅读全文