c – 如何通过构造参数来使用私有继承?
发布时间:2020-12-16 09:35:37 所属栏目:百科 来源:网络整理
导读:一些代码如下: class maven{private: string username;public: maven(string un) { username = un; }};class car : private maven{public: /... do something .../}; 然后我想在对象车中获得一个maven实例. 但是如何用参数构造maven对象呢? 我已经查找了规
一些代码如下:
class maven { private: string username; public: maven(string un) { username = un; } }; class car : private maven { public: /... do something .../ }; 然后我想在对象车中获得一个maven实例. 解决方法
如果您的意思是如何构造汽车对象的maven部分,请使用初始化列表:
class car : private maven { public: // This way car() : maven("foo") { } // Or this way car(string username) : maven(username) { } }; 值得注意的是,这样你就不会在车内获得maven实例;实际上,汽车本身就是一个内心深处(虽然它并没有告诉任何人). 除非您出于某种原因需要访问maven的受保护成员,否则这种做法并不是最好的.您可能想要考虑聚合类maven的对象,例如: class car { private: maven m_maven; public: // Initialize the member with a default parameter car() : m_maven("foo") { } // Or this way car(string username) : m_maven(username) { } }; 有关简短讨论,请参阅C FAQ lite的this page. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |