C++ 运算符重载的具体说明
只有一个方面,要么我看不见,要么我的大脑太累而无法理解,要么我像往常一样过度思考C++ 运算符重载的具体说明,c++,operator-overloading,C++,Operator Overloading,只有一个方面,要么我看不见,要么我的大脑太累而无法理解,要么我像往常一样过度思考 class CVector { public: int x,y; CVector () {}; //*****This line***** CVector (int a,int b) : x(a), y(b) {} CVector operator + (const CVector&); }; 我一辈子都无法理解“CVector(){};”在这个操作符重载/类中做了什
class CVector {
public:
int x,y;
CVector () {}; //*****This line*****
CVector (int a,int b) : x(a), y(b) {}
CVector operator + (const CVector&);
};
我一辈子都无法理解“CVector(){};”
在这个操作符重载/类中做了什么。我理解“CVector(inta,intb):x(a),y(b){}”
创建一个需要2个int的对象,并将这些int分配给x
和y
。我还了解到“CVector操作符+(const CVector&);”
是重载中涉及的函数的原型
但这条线在做什么?它只是用一个空白默认值创建一个空白对象吗?CVector(){};是默认构造函数,用于从CVector类创建对象(无需像在其他构造函数中那样传递任何参数)。它与运算符重载无关。它是默认构造函数。当您默认构造一个
CVector
时,将使用它。这与运算符重载是正交的。标题和问题应该是一致的。@juanchopanza:你为什么不把它写下来作为答案?@Christianserverin,因为这太琐碎了,在任何介绍性书籍中都有介绍,以前也被问过很多次。回答这个问题没有任何价值(当然这是我的观点,其他人可以随意回答。)谢谢。我想我很困惑,因为“cplusplus.com”网站上的默认构造函数教程没有花括号。我认为花括号进一步修改了默认构造函数。显然不是。