使用常成员函数用来处理常对象。
- 常对象只能调用常成员函数;
- 普通对象可调用全部成员函数。
若在下面的例子中,没有定义void print()函数,则con1.print()调用的是void print() const函数。
#include "pch.h"
#include <iostream>
using namespace std;
class C
{
public:
C();
C(int, int);
void print();
void print()const; //常成员函数声明
~C();
private:
int num1, num2;
};
C::C() :num1(10), num2(20){}
C::C(int x,int y):num1(x),num2(y){}
void C::print()
{
cout << "正在调用void C::print()成员函数。\n";
cout << num1 << "\t" << num2 << endl;
}
void C::print() const
{
cout << "正在调用void C::print() const成员函数。\n";
cout << num1 << "\t" << num2 << endl;
}
C::~C() { cout << "析构了一个对象!\n"; }
int main()
{
C con1;
con1.print(); //调用print()
cout << "================================\n";
const C con2(2, 3);
con2.print();//调用print()const
}