在Java中,可以在初始化时修改仅针对特定对象的类结构:
Car ford = new Car(){
public float price;
};
因此, ford 对象获得一个名为price的新属性,而其他汽车则没有。
有没有一种方法可以在C ++中获得类似的功能,而不需要创建一个完整的子类?
谢谢!
答案 0 :(得分:7)
否则在C ++中你不能按照你提到的方式去做。 您可以使用匿名类来满足您的要求。
class car {
public:
void test() { cout << "test" << endl; }
};
int main() {
struct : public car { int price; } fordcar;
fordcar.test();
return 0;
}
答案 1 :(得分:1)
我认为这在C ++中是不可能的,至少与Java一样。但是,您可以使用decorator pattern和更多代码。
答案 2 :(得分:0)
没有制作完整的子类?
问题是,你正是&#34;制作一个完整的子类&#34;在你的Java代码中。 (此对象与常规Car
对象具有不同的类。)这个子类只是一个匿名类。 C ++中没有匿名类。