1.类中的常成员函数
常成员函数声明方式为
void add(int a) const;为在函数后面加const关键字,在c++中,常成员函数与常量class有很多关系。为了保证class里的成员是只读的,所以常class对象只能调用常成员函数。
所以当声明一个如下的类时:
class M{
public:
int a;
void fun(int a)const;
void fun(int a);
}
M a;
const M b;
a.fun(1); //调用void fun(int a)
b.fun(1); //调用void fun(int a)const
2.构造函数使用冒号为成员获取初始值
如果要使用构造函数对const类型,引用类型,对象数据成员赋初值。则不能把赋值写在{}里面,因为当进入{}时成员的空间已经分配完成,就不能对其进行改变了。而使用:符号则可以在分配空间时对其进行赋值,就无此问题。
class myClass{
public:
myClass(int a, int b);
private:
const int data;
int #
}
//这种赋值是编译不能通过的
myClass::myClass(int a, int b)
{
data = a;
num = b;
}
//若在类中把构造函数改造成如下则可以通过
myClass(int a,int b):data(a),num(b){};
本文深入解析了C++中常成员函数的声明方式及其与常量class的关系,构造函数如何使用冒号为成员获取初始值,以及memcpy与memmove的区别。同时,介绍了在多文件编译时如何避免multidefinition错误的方法。

被折叠的 条评论
为什么被折叠?



