gpt4 book ai didi

C++:首先调用/初始化哪个?其成员变量的类构造函数或构造函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:55:59 25 4
gpt4 key购买 nike

在我的 main 中,如何在 Cpp 中初始化这样的东西:Testing test

class Testing
{
public:
Testing();
void initalize();
~Testing();

void run();

private:
int x;
int y;
int z;

bool isBugged;

OtherClass otherClass_;
};

顺序是什么?

最佳答案

首先调用类构造函数,并且可以使用初始化列表来参数化成员构造函数调用,否则在类构造函数入口点使用它们的默认构造函数。

Class() : otherClass_("fred", 42) {
//ctor body
}

会在 Class 的 ctor 主体之前调用 OtherClass 的(OtherClass(char *name, int age), say)构造函数.否则将使用默认构造函数(无参数)。但是由于成员在 body 中可用,因此它们是在进入 body 之前构建的。上面的示例是一个初始化列表,它是 Class 的构造函数显式调用成员构造函数的机会,否则这些成员构造函数将在此时解析为默认构造函数调用。

成员构造的顺序是它们在类声明中出现(声明)的顺序。如果这与您在初始化列表中调用构造函数的顺序不同,您的编译器应该警告您。

关于C++:首先调用/初始化哪个?其成员变量的类构造函数或构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11075978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com