您好,我试图了解友元函数的范围,但出现“未在范围内声明”错误。这是我的代码:
//node.h
class Node{
public:
int id;
int a;
int b;
friend int add(int,int);
void itsMyLife(int);
Node();
};
//node.cpp
Node::Node(){
a=0;
b=0;
id=1;
}
void Node::itsMyLife(int x){
cout<<"In object "<<id<<" add gives "<<add(x,a)<<endl;
}
//routing.cpp
#include "node.h"
int add(int x, int y){
return x+y;
}
//main.cpp
#include "node.h"
int main(){
return 0;
}
我在 node.cpp 中收到错误“add 未在此范围内声明”。当我在类作用域中声明函数时,为什么会出现此错误?任何帮助将不胜感激。谢谢
在节点类中,您声明一个友元函数 int add (int, int)。然而,目前编译器还没有遇到该函数,因此它是未知的。
您可以为添加函数创建单独的头文件和源文件。然后在 node.h 中包含新的标头。因为在声明 Node 的文件中,函数 add 目前未知。
因此,您可以创建一个 add.h 和一个 add.cpp 文件,并在声明 Node 之前包含 add.h。不要忘记编译 add.cpp 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)