gpt4 book ai didi

c++ - 为什么不能在构造函数初始化列表中使用 'this' 指针?

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

我的意思是,我们不能:

class A {
int i;
char c;
public:
A(int i = 0, char c = ' ') : this->i(i), this->c(c) {}
};

是因为实例还没有创建还是类似的原因?

最佳答案

您不需要在初始化列表中使用 this 关键字,因为初始化列表中的任何内容都必须在类中声明。当你做的时候

class MyClass
{
int member;
public:
MyClass(int member) : member(member) { }
^^^^^ Can only be resolved to a member of MyClass
}
初始化列表中的

member 不允许引用类中 int member 以外的任何内容。因此,this 关键字是不必要的,如果编译器必须在初始化列表中同时支持 member(member)this->member(member),则会增加额外的解析困难。虽然给人的印象是可以同时在初始化列表中初始化非成员变量。

关于c++ - 为什么不能在构造函数初始化列表中使用 'this' 指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29885552/

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