c++ - 对如何初始化类成员感到困惑

标签 c++ class

假设我正在使用一个名为 Engine 的类。据我了解,初始化此类和创建新对象的方法可以像下面这样完成:

string type = "v8";
Engine engine(type);

这将创建一个新的引擎对象... 那么现在如果我有一个名为 Car 的第二个类,它有一个 Engine 类的成员怎么办:

汽车.h

class Car
{
    private:
        Engine engine;
    public:
        Car();
}

汽车.cpp

Car::Car() {
    // Need to initialize Engine
}

如何初始化成员引擎,它不是已经从头文件中初始化了吗?我很困惑,因为如果 Engine 具有多态构造函数,其中一个构造函数 Engine() 和另一个 Engine(string),它不会在 Car header 中初始化吗?我如何告诉 Car 我想要一个将在 Car 的构造函数中初始化的空 Engine 成员

最佳答案

它是这样工作的:

Car::Car(void) : engine("whatever you want")
{
}

这说明了如何初始化你的类的成员。 不同的 Car 构造函数重载可以以不同的方式初始化引擎

关于c++ - 对如何初始化类成员感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36351862/

相关文章:

c++ - 如何用ncurses接收字符串?

c++ - OpenCV cv::Mat 到 std::ifstream 进行 base64 编码

jquery - 使用 $(this).attr ("class") 而不是多个类只获取一个特定类

c++ - 用于生成 PDF 的类层次结构的设计

C++11 类型推导与 const char *

python - 为什么修改类属性不会修改 Python 中的对象属性?

java - 是否可以以排序的方式获取类字段?

ruby-on-rails - Ruby On Rails 中的类列表

java - 无法从另一个JAVA类调用方法

c++ - 在 Emscripten 和 Qt 之间共享 OpenGL 代码