如何在初始化时仅继承和更改特定对象的类?
How to inherit & change a class only for a specific object at initialization?
在Java中,可以仅在初始化特定对象时修改的类结构:
Car ford = new Car(){
public float price;
};
因此,ford对象获得了一个名为price的新属性,而其他汽车没有。
是否有一种方法可以在c++中获得类似的功能,而无需制作整个子类?
谢谢!
不,在c++中你不能用你提到的方法来做。你可以使用匿名类来满足你的需求。
class car {
public:
void test() { cout << "test" << endl; }
};
int main() {
struct : public car { int price; } fordcar;
fordcar.test();
return 0;
}
生活代码
我不认为这在c++中是可能的,至少在Java中是一样的。但是,您可以通过更多的代码来使用装饰器模式。
问题是,在Java代码中,恰恰是"创建一个完整的子类"。(这个对象与普通的而不创建整个子类?
Car
对象有一个不同的类。)只是这个子类是一个匿名类。c++中没有匿名类
相关文章:
- 用C++中的CPerson(类)类型的对象初始化STL矢量
- 对象初始化中是否允许指向此成员的指针?
- 对象初始化后在C++中显示 char 数组时的异常行为
- 为什么两种不同的对象初始化方式给出不同的输出
- (2 问题)"类"类型重新定义(即使 #pragma 一次),以及静态函数内的静态成员对象初始化?
- afxmem.cpp中的对象初始化差异
- 删除通过取消引用新对象初始化的对象
- 如何使用sregex_token_iterator对象初始化向量
- 关于默认构造函数,对象初始化/使用C++ OOP
- C++ 基元类型初始化与对象初始化
- 哪个函数负责C++全局范围内的类对象初始化?
- C++中构造函数的对象初始化出现问题
- 如何修复模板 BST 类的对象初始化
- 无法在 QML/C++ 中使用绑定对象初始化 UI
- 为什么参数可以在对象初始化时通过赋值运算符传递给构造函数?
- 类对象初始化的二维向量
- GCC:当层次结构中存在虚拟继承时,C++11 内联对象初始化(使用 "this")不起作用
- 对象初始化
- 类对象初始化
- 使用从另一个类继承的类的对象初始化成员对象