考慮下面的一段代碼。具有相同名稱的C++常量和可變函數
#include <iostream>
using namespace std;
class Object
{
public:
Object() {}
void Print() const
{
cout << "const" << endl;
}
void Print()
{
cout << "mutable" << endl;
}
};
void print_obj(const Object& obj)
{
obj.Print();
}
int main()
{
Object obj1;
const Object obj2;
Object*const pobj1 = &obj1;
print_obj(obj1);
print_obj(obj2);
obj1.Print();
obj2.Print();
pobj1->Print();
return 0;
}
輸出是
const
const
mutable
const
mutable
我想知道,如何C++決定調用哪個方法,具有相同的名稱面臨着許多可變的方法是什麼時候?
我希望你從這個帶走的真正的答案是「我永遠不會做任何不正當的事情 - 即使我*可以*擺脫它。」 ;) – paulsm4