C++ 如何继承,;是否仅在初始化时更改特定对象的类?
在Java中,可以在初始化时仅修改特定对象的类结构:C++ 如何继承,;是否仅在初始化时更改特定对象的类?,c++,class,inheritance,anonymous-class,C++,Class,Inheritance,Anonymous Class,在Java中,可以在初始化时仅修改特定对象的类结构: Car ford = new Car(){ public float price; }; 因此,福特对象获得了一个称为价格的新属性,而其他汽车则没有 有没有一种方法可以在C++中获得类似的功能,而不需要生成整个子类? 谢谢 p>我认为这在C++中是不可能的,至少与java一样。但是,你可以使用更多的代码。 不生成整个子类 是,你在java中的代码中“完全地制造了一个子类”(这个对象有不同于普通的代码> Cub< /Cord
Car ford = new Car(){
public float price;
};
因此,福特对象获得了一个称为价格的新属性,而其他汽车则没有
有没有一种方法可以在C++中获得类似的功能,而不需要生成整个子类?
谢谢在C++中,你不能按你所说的那样去做。 您可以使用匿名类来满足您的需求
class car {
public:
void test() { cout << "test" << endl; }
};
int main() {
struct : public car { int price; } fordcar;
fordcar.test();
return 0;
}
等级车{
公众:
空测试(){cOUT> p>我认为这在C++中是不可能的,至少与java一样。但是,你可以使用更多的代码。
不生成整个子类
是,你在java中的代码中“完全地制造了一个子类”(这个对象有不同于普通的代码> Cub< /Cord>对象)。只是这个子类是一个匿名类。C++中没有匿名类。为了提到decorator。你能在你的答案中使用指针吗?我有点困惑:)被没有指针弄糊涂了?现在这很少见。而且,这里绝对不需要指针。如果你必须在这里使用指针,那么你需要
typedef
你的匿名类指向某个名字。正如@Quentin在C++
中提到的,你不会像在Java中一样,需要大量的新。