C++沉思录读书笔记(4章)-限定用户只能读而不能写类数据成员的方法
限定用户只能读而不能写类数据成员的方法
方法1:可以通过使用常引用,如下所示
class Vector
{
public:
const int & length;//使用构造函数将length绑定到true_length上
//...
private:
int true_length;
};
方法2:通常还是使用如下方式
class Vector
{
public:
int length() const;
//...
private:
int true_length;
};
如果一个类需要显式的调用构造函数,也就是说它没有一个默认构造函数,则试图生成该类对象的数组是非法的
构造函数的用途是用一种明确定义的状态来设置对象
假设D继承自B,只要存在对指向D类型对象的B*指针执行delete表达式,就需要对B加上一个虚析构函数,无论B是否有动态分配内存的数据成员
如果不想用户能够复制类的成员,就声明复制构造函数为私有的
类X的赋值操作符应该返回X&,注意对象的自我复制问题,赋值操作符的一般形式如下:
X& X::operator=(const X& x)
{
if(this != &x)
{...}
return *this;
}
一定要记得在复制构造函数和赋值操作符的参数类型中加上const,由于绑定一个非const引用到一个临时的对象是非法的,所以使用X::X(X&)作为复制构造函数不会允许复制任何特殊表达式的结果,X& X::operator=(const X&)也是如此
只有当函数想改变参数时,它才应该有不用const声明的引用参数
作者 yucan1001
补充:软件开发 , C++ ,