gpt4 book ai didi

c++ - this 在 c++ 中的用法

转载 作者:太空宇宙 更新时间:2023-11-04 14:55:08 24 4
gpt4 key购买 nike

我是 C++ 新手。

#include<cstdio>
#include<string>
using namespace std;


class add{

public :
int a,b;
add();
add(int ,int);
add operator+(add);

};

add::add():a(0),b(0){};
add::add(int x,int y):a(x),b(y){};
add add::operator+(add z)
{
add temp;
temp.a=a+z.a;
temp.b=b+z.b;
return temp;
}

int main()
{
add har(2,5),nad(3,4);
add total;
total=har+nad;
cout<< total.a << " "<<total.b;
return 0;
}

这个程序现在运行良好。但是,之前我写过

temp.a=this.a+z.a;
temp.b=this.b+z.b;

考虑到调用 total=har+nad;total=har.operator+(nad); 相同,编译时显示错误。

operover1.cpp: In member function ‘add add::operator+(add)’:
operover1.cpp:22:14: error: request for member ‘a’ in ‘this’, which is of non-class type ‘add* const’
operover1.cpp:23:14: error: request for member ‘b’ in ‘this’, which is of non-class type ‘add* const’

为什么我们不能在这里使用this.a+z.a

有人请帮助我。谢谢。

最佳答案

简单的答案是 this 是一个指针,因此要取消引用它,您需要使用 -> 而不是 .

关于c++ - this 在 c++ 中的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19195962/

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