大佬教程收集整理的这篇文章主要介绍了在C中以多重继承方式调用构造函数中的基础成员,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
class base_size { public: int size() { return 5; } }; class base_implement { public: base_implement(int s) : _vec(s) { cout << "size : " << _vec.size() << endl; } private: vector<float> _vec; };
如果我继承这两者,那么在其他构造函数中调用其中一个类成员函数就可以了吗?例如
class derived : public base_implement,public base_size { public: derived() : base_size(),base_implement(size()) { // Is this OK? // if Derived is not yet constructed can I access this->size() ? // Works in VC++. Not sure about other compilers. } };
只需确保以正确的顺序调用基本初始值设置,即它们的声明顺序和/或修正您的@L_673_16@:对于base_size :: size(),您希望base_size子对象被完全构造,所以它必须来第一.
class derived : base_size,base_implement { derived() : base_size(),base_implement(size()) { /* ... */ } // ... };
以上是大佬教程为你收集整理的在C中以多重继承方式调用构造函数中的基础成员全部内容,希望文章能够帮你解决在C中以多重继承方式调用构造函数中的基础成员所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。