我有这样的代码:
class outer{
int x;
class inner{
int y;
}
void print(int t_x){
std::cout << t_x;
}
}
有没有办法只创建内部类的实例?如果这是可能的,这个对象是否可以访问外层::打印函数?
最佳答案
是的,您可以让 outer
创建任意数量的 static
实例独立实例(例如,作为 inner
成员函数中的静态成员或局部变量)。
不可以。 outer::print()
仅适用于 outer
的实例,因此至少需要一个参数或 outer
的本地实例。outer
和 inner
类声明在实例化方面完全独立。这只是关于范围:
inner
类型仅在 private
outer
类作用域内可见(可以使用通过函数接收的 auto
之外的匿名 outer
类型来规避) inner
可以访问 public
的任何 protected
、 private
和 outer
成员(特殊范围特权)outer
可以像往常一样访问 public
的任何 inner
成员(没有特殊权限) 关于c++ - 创建嵌套类的实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45650554/