class B;
class A
{
public:
A(double a=0,int b=0):y(a),x(b)
{
cout << "A is creat~" << endl;
}
~A(){}
// void show()
// {
// cout << "A::y is : " << y << endl
// << "A::x is :" << x << endl;
// }
// void show(A & aa)
// {
// cout << "A::y is : " << aa.x << endl
// << "A::x is :" << aa.y << endl;
// }
// void showw_1(B& bbb)
// {
// bbb.show_1(*this);//会显示B类不完整,无法调用
// //error: invalid use of incomplete type 'class B'
// }
private:
double y;
int x;
};
class B
{
public:
B(int a=5,int b=5):xx(a),yy(b)
{
cout <<"B is creat~" << endl;
}
~B(){}
// void showw(A & aa)
// {
// cout << "B:yy is : :" << yy << endl
// << "B::xx is : " << xx << endl;
// // A::show();//调用会报错:
// //error: cannot call member function 'void A::show()' without object
// aa.show(aa);//True
// }
// void show_1(A &aaa)
// {
// cout << "A::y is : " << aaa.x << endl//.x成员为私有成员无法进行进行类外访问
// << "A::x is :" << aaa.y << endl;//.y成员为私有成员无法进行进行类外访问
// }
void show_2(double *p)
{
cout << "A::y is : " << *(p++) << endl;
int *q = (int*)p;
cout<< "A::x is : " << *q << endl;
}
private:
int xx;
int yy;
};
int main(void)
{
A a(1.5, 2);
B b(5, 6);
double *p = (double *)&a;
// a.show(a);
// b.showw(a);
// a.showw_1(b);
b.show_2(p);
return 0;
}
输出:
A is creat~
B is creat~
A::y is : 1.5
A::x is : 2