如何正确定义函数并实现它们?

时间:2013-07-23 17:13:24

标签: c++

这个结构类似于我的代码,我得到一个错误:int的原型A :: getA()const与A类中的任何一个都不匹配。我的另一个问题是运算符<<超载。我无法让它正常工作,我得到了声明错误的明确资格。我尝试在命名空间中获取.hpp,因为我在这里发布的另一个问题中看到类似的东西,但这没有帮助。如果您给我一个解决方案,我还可以向我提供有关我的代码破解原因的详细信息吗?

//define.hpp

class A{
...

int getA() const;
int getAa() const;

};

ostream& operator<<(ostream& out, const A& obj); // defined outside of the class



//implement.cpp

ostream& define::operator<<(ostream& out, const A& obj){
    return out << obj.getA() 
                << obj.getAa()
                << endl;
};

int A::getA() const{ ... };
int A::getAa() const{ ... };

int main(){

    return 0
}

1 个答案:

答案 0 :(得分:2)

全局范围内的函数(如operator<<函数)不需要作用域。因此,请跳过定义的define::部分:

ostream& operator<<(...) { ... }