gpt4 book ai didi

c++ - 构造函数中参数和成员变量的使用

转载 作者:可可西里 更新时间:2023-11-01 18:36:55 27 4
gpt4 key购买 nike

在编写类的构造函数时,我经常问自己是否应该使用已初始化的成员变量或构造函数参数。这里有两个例子来说明我的意思:

构造函数参数

class Foo {
public:
Foo(int speed) :
mSpeed(speed),
mEntity(speed)
{ }

private:
int mSpeed;
Entity mEntity;
}

成员变量

class Foo {
public:
Foo(int speed) :
mSpeed(speed),
mEntity(mSpeed)
{ }

private:
int mSpeed;
Entity mEntity;
}

此外在构造函数体中使用变量也会出现同样的问题。

构造函数参数

class Foo {
public:
Foo(int speed) :
mSpeed(speed)
{
mMonster.setSpeed(speed);
}

private:
int mSpeed;
Monster mMonster;
}

成员变量

class Foo {
public:
Foo(int speed) :
mSpeed(speed)
{
mMonster.setSpeed(mSpeed);
}

private:
int mSpeed;
Monster mMonster;
}

我知道这并不重要(某些特殊情况除外),这就是为什么我宁愿征求对代码设计的评论,而不是什么让它起作用,什么不起作用。

如果您需要解决一个特定的问题:哪种方式可以产生良好且一致的代码设计,一种方式是否比另一种方式具有(劣势)优势?

编辑:不要忘记问题的第二部分。构造函数体中的变量呢?

最佳答案

我会使用构造函数参数,因为在使用该初始化器时,这些初始化器的执行顺序取决于成员声明的顺序,而不是它们列出的顺序。所以,在这里要小心。

关于c++ - 构造函数中参数和成员变量的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21626231/

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