常对象

来源:互联网 发布:部落冲突野猪升级数据 编辑:程序博客网 时间:2024/04/25 02:26

1、常对象一定要初始化,永不能修对象的数据成员,常对象只能调用常成员函数(在调用的常成员函数中不能调用普通成员函数)

const修饰的对象叫对象常量,其格式如下:

〈类名〉const 〈对象名〉 或者 const 〈类名〉〈对象名〉

2、常成员函数:

     const关键词说明的函数叫常成员函数。其格式如下:

〈类型〉〈函数名〉(〈参数表〉)const;

常成员函数不能访问普通成员函数和常成员变量,但是普通成员函数能够访问常成员函数

(1) const是函数类型的一个组成部分,因此在函数实现部分也要带有const关键字。 

(2) 常成员函数不更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。 

(3) 常对象只能调用它的常成员函数,而不能调用其他成员函数。成员函数与对象之间的操作关系如表所示。

成员函数与对象之间的操作关系

 

常成员函数

一般成员函数

常对象

可以

不可以

一般对象

可以

可以

 

(4) const关键字可以用于参与重载函数的区分。例如: 

    void Print(); 

    void Print() const 

 这两个函数可以用于重载。重载的原则是:常对象调用常成员函数,一般对象调用一般成员函数。 

常成员变量:只能在构造函数的初始化列表初始化;

如:

const int a;

const int b;

int c;

stu::stu(int a,int b,int c) :a(a),b(b),c(c){}

或者:stu::stu(int a,int b,int c):a(a),b(b)  {

this->c = c;

}

下面是错误的赋值方法:

stu::stu(int a,int b,int c)  {

this->a=a;

this->b = b;

this->c = c;

}

原创粉丝点击