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

时间:2014-07-29 07:33:22

标签: c++ class inheritance anonymous-class

在Java中,可以在初始化时修改仅针对特定对象的类结构

Car ford = new Car(){   
    public float price;  
};

因此, ford 对象获得一个名为price的新属性,而其他汽车则没有。

有没有一种方法可以在C ++中获得类似的功能,而不需要创建一个完整的子类?

谢谢!

3 个答案:

答案 0 :(得分:7)

否则在C ++中你不能按照你提到的方式去做。 您可以使用匿名类来满足您的要求。

class car {
public:
    void test() { cout << "test" << endl; }
};

int main() {
    struct : public car { int price; } fordcar;
    fordcar.test();
    return 0;
}

Live code

答案 1 :(得分:1)

我认为这在C ++中是不可能的,至少与Java一样。但是,您可以使用decorator pattern和更多代码。

答案 2 :(得分:0)

  

没有制作完整的子类?

问题是,你正是&#34;制作一个完整的子类&#34;在你的Java代码中。 (此对象与常规Car对象具有不同的类。)这个子类只是一个匿名类。 C ++中没有匿名类。