Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何继承,;是否仅在初始化时更改特定对象的类?_C++_Class_Inheritance_Anonymous Class - Fatal编程技术网

C++ 如何继承,;是否仅在初始化时更改特定对象的类?

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

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

Car ford = new Car(){   
    public float price;  
};
因此,福特对象获得了一个称为价格的新属性,而其他汽车则没有

有没有一种方法可以在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中一样,需要大量的