实验代码如下
#include<iostream>
using namespace std;
class a{//正常定义类a
public:
int b=100;
};
class b{
public:
int b = 10;
};
namespace Ui{
class a;//在Ui空间中声明类a
}
namespace Ui{
class a:public b{};//在Ui空间中定义类a,可以没有类a的声明,但是不可以没有定义
}
class c{
public:
c();
a *u1;
Ui::a *u2;
};
c::c():u1(new a), u2(new Ui::a){};//类外声明类c的构造函数,参数初始化列表初始化类c中的成员
int main(int argc, char* argv[]){
c d;
cout<<d.u1->b<<endl;
cout<<d.u2->b<<endl;
return 0;
}
输出结果: