我有这样的代码:
class outer{
int x;
class inner{
int y;
}
void print(int t_x){
std::cout << t_x;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法只创建类inner的实例?并且如果可能的话,该对象是否可以访问external :: print函数?
有没有办法只创建类inner的实例?
是的,您可以根据需要outer创建尽可能多的实例独立实例(例如,作为静态成员或static成员函数中的局部变量)inner。
如果可能的话,该对象是否具有
outer::print功能?
No. outer::print()仅适用于的实例outer,因此至少需要一个参数或的本地实例outer。
在outer与inner类的声明是完全独立的有关实例。它仅涉及范围:
inner类型仅在private outer类范围内可见(可以使用通过函数接收的auto外部匿名类型来规避outer)inner有权访问public,protected以及(特殊范围特权)的private成员outerouter可以像往常一样访问任何public成员inner(无特殊特权)| 归档时间: |
|
| 查看次数: |
2534 次 |
| 最近记录: |