gpt4 book ai didi

c++ - 我应该只将构造函数用于 C++ 中的变量初始化吗?

转载 作者:行者123 更新时间:2023-12-04 07:19:15 27 4
gpt4 key购买 nike

我是 C++ 中 OOP 的新手。我有一个不需要运行任何代码的类,在创建对象时也不需要任何参数,我是否仍然应该只为变量的初始化编写构造函数。
我可以做这个:

#include <iostream>

class Something
{
private:
const char* msg = "Hewwo World"; // i can initialise here
public:
void Print()
{
for (int i = 0; i < 11; ++i)
{
std::cout << *msg++;
}
}
};

int main()
{
Something smth;
smth.Print();
}
而不是这个:
#include <iostream>

class Something
{
private:
const char* msg;
public:
Something()
{
msg = "Hewwo World";
}
void Print()
{
for (int i = 0; i < 11; ++i)
{
std::cout << *msg++;
}
}
};

int main()
{
Something smth;
smth.Print();
}
两者都给出相同的输出,第一种方法更干净(据我所知)。有什么理由我应该使用第二种方法吗?

最佳答案

const char* msg = "Hewwo World"; // i can initialise here

准确地说,你不是在那里初始化。您正在定义默认成员初始化程序。当您在不为该成员提供初始化程序的情况下初始化实例时,将使用此初始化程序。

should I still write a constructor only for the initialization of the variables.


视情况而定,但通常没有必要这样做。简单的类通常用作聚合。类成为聚合的前提是该类没有用户声明的构造函数。

关于c++ - 我应该只将构造函数用于 C++ 中的变量初始化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68607406/

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