【发布时间】:2013-05-02 02:46:19
【问题描述】:
我正在研究这段代码:
#include <iostream>
class A
{
public:
A() {};
void fox(A& otherA) { otherA.hello(); }
protected:
void hello() {std::cout << "hello" << std::endl;}
};
A a1,a2;
int main(void)
{
a1.fox(a2);
a1.hello();
}
对于说a1.fox(a2) 将如何编译而说a1.hello() 不会编译,我有点困惑。我会假设它会中断,因为虽然我可以从类中调用受保护的和私有的函数......允许我在 otherA 对象上执行此操作意味着我必须知道我是从成员中调用它它自己的类。为什么/如何工作?
【问题讨论】: