我写了这样的课:
class Base {
public:
Base():con{5} {}
private:
class subClass {
subClass(int t):data{t} {}
int data;
};
vector<subClass> con;
};
在这个类中,我希望有一个容器成员来存储其私有子类,因为我认为
con
具有访问权限和新的subClass
权限,但是结果编译器告诉我:test.cpp:8:3:错误:“ Base :: subClass :: subClass(int)”是私有的:
subClass(int t):数据{t} {}
test.cpp:5:14:错误:在此范围内
上下文Base():con {5} {}
所以我的问题是为什么我的代码不起作用。任何建议,高度赞赏!
最佳答案
问题是子类不提供公共构造函数,因此请提供一个
class Base {
public:
Base():con{5} {}
private:
class subClass {
int data;
public:
subClass(int t):data(t) {}
};
vector<subClass> con;
};
关于c++ - 如何使容器成为私有(private)子类的成员?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36611658/