如何在初始化时仅继承和更改特定对象的类?

How to inherit & change a class only for a specific object at initialization?

本文关键字:对象 初始化 继承      更新时间:2023-10-16

在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++中没有匿名类