要在ClassA 中增加定义一个成员函数

来源:互联网 发布:ug数控车床编程实例 编辑:程序博客网 时间:2024/04/28 07:31

    现在要在ClassA 中增加定义一个成员函数ClassA::AdditionalPunction(ClassA a,ClassB b);
则可以在AdditionalPunction(ClassA x,ClassB y)的实现部分(函数功能体内部)
出现的合法的表达是最全的是:
A,x.PrivateFunc();x.PublicFunc();y.PrivateFunc();y.PublicFunc();
B,x.PrivateFunc();x.PublicFunc();y.PublicFunc();
C,x.PrivateFunc();y.PrivateFunc();y.PublicFunc();
D,x.PublicFunc();y.PublicFunc();

 

 

 

#include <iostream>using namespace std;class ClassB;class ClassA{public: ClassA():a(0){} void AdditionalPunction(ClassA a,ClassB b); void PublicFunc(){  cout<<"ClassA PublicFunc"<<endl; } void display(){  cout<<a<<endl; }protected:private: void PrivateFunc(){  cout<<"ClassA PrivateFunc"<<endl; }  int a;};class ClassB{public: void PublicFunc(){  cout<<"ClassB PublicFunc"<<endl; }protected:private: void PrivateFunc(){  cout<<"ClassB PrivateFunc"<<endl; }};void ClassA::AdditionalPunction(ClassA x,ClassB y){/* //正确x.PrivateFunc();x.PublicFunc();y.PublicFunc(); */ /* x.PrivateFunc(); x.PublicFunc(); y.PrivateFunc(); //错误,无访问private成员 y.PublicFunc(); */ /* x.PrivateFunc(); y.PrivateFunc();//错误,无访问private成员 y.PublicFunc(); */ /*  //正确,但不是最全的 x.PublicFunc(); y.PublicFunc(); */ x.a=10; this->a=x.a;}void main(){ ClassA a; ClassA a1; ClassB b; a1.AdditionalPunction(a,b); a1.display(); system("pause");}


 

答案: B