const物件與const成員函式
阿新 • • 發佈:2019-02-17
const物件只能呼叫const成員函式:
#include<iostream>
using namespace std;
class A
{
public:
void fun()const
{
cout<<"const 成員函式!"<<endl;
}
void fun()
{
cout<<"非const成員函式 !"<<endl;
}
};
int main()
{
const A a;
a.fun();
}
輸出:const 成員函式!
但是如果把第以1個fun註釋掉就會出錯:error C2662: “A::fun”: 不能將“this”指標從“const A”轉換為“A &”。
但是const成員函式可以被非const 物件呼叫:
#include<iostream>
using namespace std;
class A
{
public:
void fun()const
{
cout<<"const 成員函式!"<<endl;
}
/* void fun()
{
cout<<"非const成員函式 !"<<endl;
}
*/
};
int main()
{
A a;
a.fun();
}
該段程式碼輸出:const 成員函式!
當然非const物件可以呼叫非const成員函式。