我有这样的代码:
class outer{
int x;
class inner{
int y;
}
void print(int t_x){
std::cout << t_x;
}
}
有没有办法只创建类内部的实例?如果这是可能的,这个对象是否可以访问outer :: print函数?
答案 0 :(得分:5)
有没有办法只创建class inner的实例?
是的,您可以让outer
根据需要在static
创建尽可能多的与实例无关的实例(例如,inner
成员函数中的静态成员或局部变量)。
如果可以,这个对象是否可以访问
outer::print
函数?
没有。 outer::print()
仅适用于outer
的实例,因此至少需要outer
的参数或本地实例。
outer
和inner
类声明在实例化方面完全独立。它只涉及范围:
inner
类型只能在private
outer
类范围内看到(可以使用通过函数收到的auto
之外的匿名outer
类型来规避) inner
有权访问public
的任何protected
,private
和outer
成员(特殊范围权限)outer
可以像往常一样访问public
inner
个loadoutAdvWeaponPanels[0][0]
成员(无特殊权限)