如何在C中的另一个类’private中定义一个类
发布时间:2020-12-16 04:54:32 所属栏目:百科 来源:网络整理
导读:是否可以在另一个类中定义一个私有类并将其用于数组?例如: class a{ public: private: class b; b myarray[10]; class b { public: b(int a):a_val (a){} private: int a_val; };}; 忽略公共,我的语法有什么问题吗? 是否也可以在A中创建成员函数来修改b的
是否可以在另一个类中定义一个私有类并将其用于数组?例如:
class a { public: private: class b; b myarray[10]; class b { public: b(int a):a_val (a){} private: int a_val; }; }; 忽略公共,我的语法有什么问题吗? 是否也可以在A中创建成员函数来修改b的私有值.例如,myarray [0] .a_val = 5;如果是这样,这个语法也是正确的吗? 解决方法
不,您定义私有嵌套类的语法是正确的.虽然其他一些问题是错误的:您需要在创建数组之前定义b.类型需要完整.
b不是默认可构造的,因此您还需要在构造函数初始化列表中初始化该数组,这在C 03中实际上是不可能的.C 11提供初始化列表以获得该功能. 只需使用std :: vector或std :: array. 固定版本的代码: class a { public: // ATTN C++11 feature here a() : myarray({ 1,2}) {} private: class b { public: b(int a) : a_val (a){} int a_val; }; b myarray[2]; }; int main () { a a; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 你是如何理解控制反转(IoC)和依赖注入(DI)的
- map set / get requests into C class / structure changes
- XStream解析复杂XML
- 如何在c#中获取远程服务器的SSL证书信息
- 至少10位数,至少包含一个大写字母,至少一个小写字母,至少一
- NoSQL解决方案比较(MongoDB vs Redis, Tokyo Cabinet, and
- 需要Flex说明:width,min(max)Width,explicitWidth,explici
- c# – 打开webbrowser,自动填写表单组件并提交
- Cocos2dx教程专栏(一) 一切从一个游戏菜单开始:
- 玩Flash十五年,养出一只“神经猫”