c++创建一个自满足的对象来扩展另一个类
C++ creating a self sufficient object that extends another class
我想我对对象和扩展对象时会发生什么感到有点困惑。
我的目标是通过扩展A()来创建B(),这样我就可以得到A()的所有函数,等等,但使B()在创建自己时完全自给自足,等等
B(),当从某处实例化时,最终会设置它的颜色,大小,位置等,所以我可以这样做:
B::B *b = new B:B(something in);
this -> addChild(b, 1);
那么当这个->addChild()时它就会添加然后事情就像我在B()
中设置的那样和
B::B *b = new B:B(something in);
b->setPosition();
b->setColor();
...
this -> addChild(b, 1);
在封装和继承中吗?
更新:所以我认为让我困惑的是如果:
class A : public Z {
}
class b : public Z {
}
在:B::B *b = new B::B()
this-> addChild(b,1)
这样不行吗?
你不是在扩展,而是在合成。
如果你想从A扩展类B(这样你就可以在A中获得所有受保护的和公共的方法),你需要这样定义B:
class B : public A { ... }
如果你想把A包含在B中,那么你应该让读者明白。你们两个的选择都不重要,除非不是很清楚。在您的情况下,我更喜欢第一个addChild似乎只是一个操作。
编辑:好的,在你的编辑是它应该工作。但是不需要放置B::B,除非B在B命名空间内。调用new B(), new A():
A *a = new A(..);
一些uri:-比起继承更喜欢组合?——http://en.wikipedia.org/wiki/Composition_over_inheritance
相关文章:
- 如何将 Python 对象转换为 Cython 扩展类型的 std::vector 并返回?
- 扩展auto_ptr以释放 C 样式对象
- 从“if constexpr”分支扩展对象生存期/范围
- 扩展中的日期时间对象方法C++问题
- 在用 C++ 编写的 Python 3 扩展中,如何将 wstring 对象传递给 Python 代码
- 如何使用纯Python扩展API(Python3)包裹C 对象
- 扩展 std::thread 的 ref 对象的传递范围
- 如何在Quantlib中的现有屈服对象添加常数扩展
- 结构化绑定中的const引用扩展了分解对象的寿命
- C++ 扩展模板类时定义特定对象类型
- 在 Nodejs/V8 扩展中通过 Javascript 将C++对象传递给C++函数
- 扩展模板化类以在对象实例上具有运算符 bool<bool>
- 用c++对象的全局实例扩展嵌入式python解释器
- 禁用设置python扩展对象的属性
- 从C扩展跟踪CPython对象的生存期
- 使QScrollArea动态适应其父对象,但不为其子对象扩展
- C预处理器扩展到另一个类似对象的宏
- Android OpenGL ES 2.0使用扩展支持顶点数组对象吗?
- c++创建一个自满足的对象来扩展另一个类
- 如何在Ruby扩展C++中获得精确的对象类型