Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 运算符重载的具体说明_C++_Operator Overloading - Fatal编程技术网

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”网站上的默认构造函数教程没有花括号。我认为花括号进一步修改了默认构造函数。显然不是。