在定义A类时,把成员变量设置为公有(public),否则A的私有变量是不可以在其他类或函数中使用的,当设置成公有后,A.a,A.b,A.c就可以在B中引用,这种方法在B中可以改变a,b,c的值。或给A设Geta(){return a;}的成员函数,在B中调用A.Geta();但是这种方法,不能改变a,b,c。
谁说不可以?类的成员引用有两种方法:继承和友元函数
第一种:继承。比如:
class A{
public:
A():a(1),b(1),c(1){};
public:
int a,b,c;
}
class B:public A//B继承A
{
public:
void input(class &A)
{
a1 = A.a;
b1 = A.b;
c1 = A.c;
}
public:
int a1;
int b1;
int c1;
}
第二种方法:友元函数,比如:
class A{
public :
A():a(1){};
public :
int a;
friend class B
}
class B
{
public :
void input()
{
a1 = A.a;
b1 = A.b;
c1 = A.c;
}
public :
int a1;
int b1;
int c1;
}
法一:将A中a,b,c设成公有型;
法二:将A中a,b,c设成私有型,通过调用A的公有成员函数A::SetData()改变a,b,c的值。
友元,或者通过接口访问,