【C++】类与对象 | const

常对象

const A a(1);
A const a(1);
  • 常对象只能调用常成员函数 (除了由系统自动调用的隐式构造函数和析构函数)
  • 常对象中所有的数据成员为常变量(不能被修改),且必须有初始值

常对象成员

常成员函数

#include <iostream>
using namespace std;

class a
{
public:
    void fun() const;
};

//注意:定义时要与声明一致,即别漏了const
void a::fun() const
{
    cout << "test" << endl;
}

int main()
{
//常成员函数既可以被常对象调用,也可以被非常对象调用
    a a1;
    a1.fun();
//常对象
    const a a2;
    a2.fun();
}
  • 常成员函数 不可改变 对象的任何数据成员值
    【C++】类与对象 | const
    > f1 与 f2
class a
{
public:
    void f2(const int &d)
    {
        data = d;
    }

private:
    int data;
};

常数据成员

值不能改变。
只能通过构造函数的参数初始化表对常数据成员进行初始化


C++中的常对象和常对象成员

【C++】类与对象 | const

  1. 不要误认为常对象中的成员函数都是常成员函数,常对象只保证其所有数据成员的值不被修改。
  2. 如果在常对象中的成员函数未加const声明,则编译系统会把它当非const成员函数处理。
  3. 常成员函数不能调用另外一个非cosnt成员函数。
上一篇:day7 对字母数字的编排


下一篇:《第一行代码》 第三版 - 第二章(笔记)