gpt4 book ai didi

C++ 引用构造函数语法

转载 作者:太空狗 更新时间:2023-10-29 20:59:57 24 4
gpt4 key购买 nike

考虑以下短程序。

#include <string>

int main(){
std::string hello("HelloWorld");
std::string& helloRef(hello); // "line 2"
std::string& hello3 = hello; // "line 3"
}

第 2 行和第 3 行是否等效?

  • 如果是这样,有人可以提供有关第 2 行语法的文档吗?
  • 如果不是,有人可以解释一下区别吗?

我尝试了各种搜索,例如“构造函数引用”和“引用复制构造函数”,但我似乎无法在第 2 行找到文档。

最佳答案

是的,helloRef 和 hello3 都是对 hello 字符串对象的引用。这称为引用初始化。通常,您会在此处使用 = 运算符。您将在类的构造函数初始化列表中使用第二行的形式,如下所示:

class c
{
public:
c()
: hello("HelloWorld"),
helloRef(hello)
{
std::string& hello3 = hello;
}

private:
std::string hello;
std::string& helloRef;
};

更多信息:http://en.cppreference.com/w/cpp/language/reference_initialization

关于C++ 引用构造函数语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23379415/

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