struct A {
void foo(int i, char& c) {
cout << "foo int char&" << endl;
}
void foo(int& i, int j) const {
cout << "const foo int& int" << endl;
}
};
int main() {
A a;
const A const_a;
int i = 1;
char c = 'a';
a.foo(i,i);
}
将被打印:
const foo int&amp; INT
我不明白为什么。 为什么“const foo int&amp; int”不会被打印出来? 我认为常量Object只能调用常量方法,没有const可以调用没有const。
答案 0 :(得分:1)
你误会了会员 - const
。
普通对象可以在其上调用任何成员函数,const
或其他。
约束是您的const_a
无法在其上调用非const
成员函数。不幸的是,你没有测试过。