当前位置:编程学习 > C/C++ >>

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++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,