gpt4 book ai didi

c++ - 在理解 C++ 基本类的一小部分方面需要帮助吗?

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

有人能解释一下 CVector CVector::operator+(CVector 参数)中正在做什么吗?点运算符如何与 temp 一起使用。我明白你什么时候做 object.function() 但做 object.object 有什么意义这只是将它们设置为彼此相等吗?糊涂!!

#include <iostream>
using namespace std;

class CVector {
public:
int x,y;
CVector () {};
CVector (int,int);
CVector operator + (CVector);
};

CVector::CVector (int a, int b) {
x = a;
y = b;
}

CVector CVector::operator+ (CVector param) {
CVector temp;
temp.x = x + param.x;
temp.y = y + param.y;
return (temp);
}

int main () {
CVector a (3,1);
CVector b (1,2);
CVector c;
c = a + b;
cout << c.x << "," << c.y;
return 0;
}

最佳答案

这叫做 operator overloading .它在这种情况下所做的是允许您将两个 CVector 对象加在一起,如 main 函数中所示。

当main函数中出现a + b时,调用a对象的operator+方法,用b 作为 param。它因此构造了一个 temp 对象,结合了两者的坐标,并返回它。

ETA:重读你的问题,我想你可能也在问这条线

temp.x = x + param.x;

意味着。请注意,C++ 对象不仅具有可以调用的函数(如 object.function()),它们还具有成员,这些成员本身就是可以访问和更改的变量。在这种情况下,xy 是属于 CVector 类的整数。阅读this tutorial

关于c++ - 在理解 C++ 基本类的一小部分方面需要帮助吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10611281/

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