C++中常对象、常成员函数、常成员变量

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:43   1351   0

const修饰的类对象叫做常对象,

const修饰的成员函数叫常成员函数,

const修饰的成员变量叫常成员变量,

常对象:

型如:

const <类名> <对象名>

<类名> const <对象名>

说明:

1.常对象内的成员变量值不可修改,所以一定要在定义对象时初始化

2.常对象只可以调用常成员函数,但是非常对象可以调用常成员函数。

3.通过常成员函数只能进行读取变量值,不能修改任何成员变量值

常成员函数:

型如:

<类型标志符>函数名(参数表)const;

说明:

1.const是函数的一部分,所以在实现时也是需要加入const不能省略。

2.常成员函数可以被常对象和普通对象调用。

3.常成员函数内不可以修改任何成员变量的值。

4.常成员函数只可以调用对象内其他常成员函数。

常成员变量:

型如:

const <变量类型> <变量名>

<变量类型> const <变量名>

说明:

1.常成员变量必须在构造函数中初始化(通过列表初始化)。

2.常成员变量不能被赋值,即初始化后不能被改变。

下图代码+运行结果:

#include<iostream>
#include<string>
using namespace std;
class Person
{
 private:
  int age;
  string name;
 public:
  Person(const int,const string);
  void show();
  void show()const;
  void show111()const;
  ~Person();
};
Person::Person(const int x,const string y):age(x),name(y)
{}
void Person::show()
{
 cout<<age<<"  "<<name<<endl;
 cout<<"我是普通成员函数"<<endl;

}
void Person::show111()const
{
 cout<<"常成员函数调用了我"<<endl;

}
void Person::show()const
{
 cout<<age<<"  "<<name<<endl;
 show111();
 cout<<"我是常成员函数"<<endl;
 
}
Person::~Person()
{}
int main()
{
 const Person p=Person(23,"AAAAA");
 p.show(); 
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP