gpt4 book ai didi

c++ - 为什么引用 operator = 有效而使用构造函数却不行?

转载 作者:搜寻专家 更新时间:2023-10-31 01:26:34 25 4
gpt4 key购买 nike

据我所知,以下语句是相同的:

A a1(1);
A a2=1;

标题:

class A
{
public:
A(int num){}
};

但是当使用引用时它不会编译

class B{
private:
int m_a = 0;
int& m_b(m_a);

public:
B(int num):
{
}
};

得到编译错误,指出 m_a 不是类型名称但是当用 = 这样做时,它起作用了:

class B
{
private:
int m_a = 0;
int& m_b = m_a;

public:
B(int num):
{
}
};

最佳答案

类内成员初始化不同于其他形式的初始化。

类内成员初始化唯一支持的语法是:

int& m_b = m_a;
int& m_b{m_a};

您可以在 https://en.cppreference.com/w/cpp/language/data_members#Member_initialization 阅读更多相关信息.

关于c++ - 为什么引用 operator = 有效而使用构造函数却不行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55108217/

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