预测以下程序的输出。
#include
using namespace std;
class B;
class A {
int a;
public:
A():a(0) { }
void show(A& x, B& y);
};
class B {
private:
int b;
public:
B():b(0) { }
friend void A::show(A& x, B& y);
};
void A::show(A& x, B& y) {
x.a = 10;
cout << "A::a=" << x.a << " B::b=" << y.b;
}
int main() {
A a;
B b;
a.show(a,b);
return 0;
}
(A)编译器错误
(B) A :: a = 10 B :: b = 0
(C) A :: a = 0 B :: b = 0答案: (B)
说明:这是一个简单的程序,其中将类A的函数声明为类B的朋友。
由于show()是朋友,因此它可以访问B的私有数据成员。
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。