gpt4 book ai didi

c++ - 隐藏在构造函数初始化列表中的名称

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

我想修改构造函数以使用初始化列表,如下例所示:

class Foo
{
public:
Foo(std::wstring bar);
private:
std::wstring bar;
};

// VERSION 1:

Foo::Foo(std::wstring bar) {this->bar = bar}

// VERSION 2:

Foo::Foo(std::wstring bar) : this->bar(bar) {} // ERROR!

不幸的是,我不能做版本 2,因为你不能为数据成员使用 this 指针,因为(我猜)它们在那时还不存在。那么,如何处理名称隐藏问题(即我的参数和我的数据成员具有相同的名称)?

最佳答案

你不需要。第一个 bar 将引用成员,第二个 bar 将引用参数:

Foo::Foo(std::wstring bar) : bar(bar) {}

关于c++ - 隐藏在构造函数初始化列表中的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14716337/

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