如何在C ++中的头文件外定义赋值运算符?

时间:2012-07-05 15:28:06

标签: c++ variable-assignment

我有一个头文件,其中包含一个带赋值运算符的类。现在我想在我的.cpp文件中定义我的函数。

我的标头文件包含:Car &operator=(const Car &other); 现在在我的cpp文件中,我想做一些类似的事情:Car::Car &operator=(const Car &other) { }

不幸的是,这似乎不是正确的语法。那么当我将函数声明和函数定义分开时,如何定义赋值运算符?

4 个答案:

答案 0 :(得分:9)

你快到了;您需要限定函数名称以表明它是成员:

Car &Car::operator=(const Car &other) { }
     ^^^^^

答案 1 :(得分:3)

我按如下方式编写运算符

in.h
Car& operator=(const Car &other);
in cpp
Car& Car::operator=(const Car &other) { }

答案 2 :(得分:2)

正确的语法是

Car& Car::operator=(const Car& other) { }

因为operator=()及其适当的参数是成员函数。

答案 3 :(得分:2)

Car& Car::operator=(const Car &other) { }

是要走的路。