友元函数未在此范围内声明错误

2023-12-22

您好,我试图了解友元函数的范围,但出现“未在范围内声明”错误。这是我的代码:

//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(使用前将#替换为@)

友元函数未在此范围内声明错误 的相关文章

  • 获取数组变量的地址是什么意思?

    今天我读到了一段让我很困惑的 C 代码片段 include
  • Windows 10 Mobile (10.0.14393) 地理围栏后台任务 (LocationTrigger)

    自从10 0 14393 周年纪念更新 LocationTrigger似乎不起作用 我有 Windows Phone 8 1 应用程序 也适用于 UWP 应用程序 输出到的便携式库Windows Runtime Component图书馆 w
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • 为什么Apache MPM prefork.c 使用互斥体来保护accept()?

    我坐下来读书Apache 的 MPM prefork c http code metager de source xref apache httpd server mpm prefork prefork c这段代码使用了一个名为accept
  • 为什么大多数平台上没有“aligned_realloc”?

    MSVC有自己的非标准函数 aligned malloc aligned realloc and aligned free C 17和C11引入了 std aligned alloc 其结果可以是de分配有free or realloc B
  • 将字符串转换为正确的 URI 格式?

    有没有简单的方法可以将电子邮件地址字符串转换为正确的 URI 格式 Input http mywebsite com validate email 3DE4ED727750215D957F8A1E4B117C38E7250C33 email
  • 对 boost 库的依赖项没有完整路径

    我已经成功构建了动态库 依赖于使用自定义前缀构建和安装的 boost 库 b2 install prefix PREFIX 然而 当我跑步时otool L在我的库中 我得到如下输出 libboost regex dylib compatib
  • HttpWebRequest vs Webclient(特殊场景)

    我知道这个问题之前已经回答过thread https stackoverflow com questions 1694388 webclient vs httpwebrequest httpwebresponse 但我似乎找不到详细信息 在
  • TcpClient 在异步读取期间断开连接

    我有几个关于完成 tcp 连接的问题 客户端使用 Tcp 连接到我的服务器 在接受客户端后listener BeginAcceptTcpClient ConnectionEstabilishedCallback null 我开始阅读netw
  • 两种类型的回发事件

    1 我发现了两篇文章 每篇文章对两种类型的回发事件的分类都略有不同 一位资源说两种类型的回发事件是Changed事件 其中控件实现 IPostbackDataHandler 当数据在回发之间更改时触发 然后Raised事件 其中控件实现 I
  • libxml2 xmlChar * 到 std::wstring

    libxml2似乎将所有字符串存储在 UTF 8 中 如xmlChar xmlChar This is a basic byte in an UTF 8 encoded string It s unsigned allowing to pi
  • 预处理后解析 C++ 源文件

    我正在尝试分析c 使用我定制的解析器的文件 写在c 在开始解析之前 我想摆脱所有 define 我希望源文件在预处理后可以编译 所以最好的方法是运行C Preprocessor在文件上 cpp myfile cpp temp cpp or
  • 默认析构函数做了多少事情

    C 类中的默认析构函数是否会自动删除代码中未显式分配的成员 例如 class C public C int arr 100 int main void C myC new C delete myC return 0 删除 myC 会自动释放
  • 二叉树中的 BFS

    我正在尝试编写二叉树中广度优先搜索的代码 我已将所有数据存储在队列中 但我不知道如何访问所有节点并消耗它们的所有子节点 这是我的 C 代码 void breadthFirstSearch btree bt queue q if bt NUL
  • 为什么要在 C++ 中使用 typedef?

    可以说我有 set
  • 初始化 LPCTSTR /LPCWSTR [重复]

    这个问题在这里已经有答案了 我很难理解并使其正常工作 基本上归结为我无法成功初始化这种类型的变量 它需要有说的内容7 2E25DC9D 0 USB003 有人可以解释 展示这种类型的正确初始化和类似的值吗 我已查看此站点上的所有帮助 将项目
  • C 中带有指针的结构的内存开销[重复]

    这个问题在这里已经有答案了 我意识到当我的结构包含指针时 它们会产生内存开销 这里有一个例子 typedef struct int num1 int num2 myStruct1 typedef struct int p int num2
  • C语言声明数组没有初始大小

    编写一个程序来操纵温度详细信息 如下所示 输入要计算的天数 主功能 输入摄氏度温度 输入功能 将温度从摄氏度转换为华氏度 独立功能 查找华氏度的平均温度 我怎样才能在没有数组初始大小的情况下制作这个程序 include
  • 在 Xamarin 中获取 OutOfMemoryException

    java lang OutOfMemoryError 考虑增加 JavaMaximumHeapSize Java 执行时内存不足 java exe 我的 Visualstudio Xamarin 项目出现内存不足异常 请帮助我如何解决此问题
  • 以 UTF8 而不是 UTF16 输出 DataTable XML

    我有一个 DataTable 我正在使用 WriteXML 创建一个 XML 文件 尽管我在以 UTF 16 编码导出它时遇到问题 并且似乎没有明显的方法来更改它 我了解 NET 在字符串内部使用 UTF 16 这是正确的吗 然后 我通过

随机推荐

  • iPhone CorePlot:带有用户触摸事件的图表

    我现在正在使用 Core plot 来开发应用程序 我正在寻找一些触摸事件供用户触摸图表的一个点 然后它显示价格 当我查看 CorePlot 网站时 它有一个应用程序显示我需要什么http code google com p core pl
  • 为每个组添加序列计数 pandas python

    我有一个简单的问题 但无法解决它 我有一个简单的表 例如 group1 a a a b b b c c 我可以使用以下方法向列添加计数 df count range 1 len df 1 我尝试使用 groupby 函数来更改此设置 但无法
  • Laravel eloquent <> 出现错误

    我有疑问where在本机 PHP 中 其中类型 点 我尝试转换为雄辩的laravel gt with payments function query query gt where type lt gt point 但它显示错误如下 mb s
  • 如何更改 GlashFish 4.0 中的 EclipseLink?

    我想在 GlashFish 4 0 中将 EclipseLink 从 2 5 0 更改为 2 5 1 我有下载的 http www eclipse org eclipselink downloads the OSGi http www ec
  • OpenGL sRGB 帧缓冲区奇怪之处

    我正在使用 GLFW3 创建上下文 我注意到GLFW SRGB CAPABLE属性好像没有什么影响 无论我将其设置为什么 我总是会在以下情况下获得 sRGB 转换 GL FRAMEBUFFER SRGB已启用 我的理解是 当GL FRAME
  • Codeigniter 外键约束检查

    先解释一下表结构 Field Type Null Key Default Extra id int 11 NO PRI NULL auto increment firstname varchar 255 NO NULL n
  • 如何在 React Native 中打开应用内浏览器窗口?

    当我单击 URL 适用于 iOS 和 Android 时 我尝试在不离开应用程序的情况下打开浏览器窗口 行为应如下 以airbnb应用程序为例 点击 条款和条件 链接 链接示例 https i stack imgur com 4esEA p
  • 如何计算 Pandas 滚动窗口中的波动性(标准差)

    我有一个时间序列 Ser 我想用滚动窗口计算波动率 标准差 我当前的代码以这种形式正确执行 w 10 for timestep in range length subSer Ser timestep timestep w mean i np
  • 如果没有设置border-color,则继承元素的颜色

    p para color red border style ridge border width 10px p class para When one value is specified it applies the same color
  • matplotlib 数据的 cx_freeze 错误

    我试图在 Debian 8 机器上使用 cx freeze 冻结 Python 程序 但遇到以下错误消息 copying usr lib python2 7 dist packages matplotlib mpl data gt buil
  • 在 Phonegap 中加载 JSON?

    基本上我有一个位于服务器上的 php 脚本 它生成一个 JSON 文件 列出 mysql 数据库中的位置 我正在使用 jQuery Mobile 开发一个应用程序来显示这些地方 我的代码在 Chrome 和 Safari 中工作 但是当我将
  • 如何分别填充NaT和NaN值

    我的数据框同时包含 NaT 和 NaN 值 Date Time entry Entry Date Time exit Exit 0 2015 11 11 10 52 00 19 9900 2015 11 11 11 30 00 20 350
  • 无法访问 C++ std::set 中对象的非常量成员函数

    留言是我做的一堂课 我在主函数中有一组它们传递给 messageTimeOut 以及其他一些函数 在使用迭代器的 messageTimeOut 中 我循环遍历它们并访问不同的成员函数 但是 我只能访问迭代器指向的 Message 的 con
  • 为什么在方法或函数名称之前和之后使用 const 关键字?

    我的应用程序中有以下代码 为什么我们使用const返回类型和方法名称后面的关键字 const T data const return data const T get data const return data 意味着它将返回一个cons
  • pandas - groupby 多个值?

    我有一个数据框 其中包含按通话日期和持续时间记录的手机分钟使用情况 它看起来像这样 30 行示例 id user id call date duration 0 1000 93 1000 2018 12 27 8 52 1 1000 145
  • 如何保护 firebase Cloud Function HTTP 端点以仅允许经过 Firebase 身份验证的用户?

    借助新的 firebase 云功能 我决定将部分 HTTP 端点移至 firebase 一切都很好 但我有以下问题 我有两个由 HTTP 触发器 云函数 构建的端点 用于创建用户并返回自定义令牌的 API 端点 由 Firebase Adm
  • 删除一组具有特定值的变量中的随机观察子集

    假设我有一个数据框 我想在其中删除满足特定标准的随机观察样本 即整行 以此数据框为例 id var1 var2 AAAA 1 Car BBBB 2 Truck CCCC 1 Boat DDDD 2 Car EEEE 1 Truck FFFF
  • 为传单设置 SRID - Geodjango

    我的 Postgres 数据库中有 31277 投影的数据 无论如何 我正在使用 Leaflet 地图来向他们展示 Geodjango 现在 我的数据已移动到地图中的某个位置 因此我需要更改 Leaflet 地图的投影 在文档中 http
  • Heroku 计费测功机到底如何工作?

    我试图了解 Heroku 定价系统 好的 免费帐户每小时可获得 1000 dyno dyno hour 的确切含义是什么 这取决于什么 每秒请求数 用户数量 如果我想切换到非睡眠优惠 我必须为每个 dyno 支付 7 美元 那么 1000
  • 友元函数未在此范围内声明错误

    您好 我试图了解友元函数的范围 但出现 未在范围内声明 错误 这是我的代码 node h class Node public int id int a int b friend int add int int void itsMyLife