gpt4 book ai didi

c++ - 这种赋值方式叫什么?我的变量(值);

转载 作者:行者123 更新时间:2023-11-28 02:33:24 32 4
gpt4 key购买 nike

我在研究别人的代码时注意到他按以下方式分配类的公共(public)/私有(private)成员:

myMemberVar(Value);

代替

myMemberVal=Value;

我想知道这种分配方式是否正常,是否真的可以互换使用。

最佳答案

您可能正在查看成员初始化列表中的初始化

struct A
{
int x, y;

A()
: x(42) // <-- here
, y(12) // <-- and here
{}
{};

这些不是“作业”,以下是作业:

void foo()
{
int x = 42;
int y = 42;
}

但请记住,C++03 初始化语法(与上述令人困惑的、遗留的、看起来像赋值语法相反)是:

void foo()
{
int x(42);
int y(42);
}

并且,更进一步,自 C++11 以来:

void foo()
{
int x{42};
int y{42};
}

这就是成员初始化列表中需要的语法。

请注意,这意味着它们不可通常可互换:仅在初始化时!通常,当您编写 = 时,您正在执行赋值,并且此初始化语法在那里无效。


别担心,我还是喜欢它!

关于c++ - 这种赋值方式叫什么?我的变量(值);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28364219/

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