友元函数可以继承吗?为什么基类 FRIEND 函数可以在派生类对象上工作?

2023-12-21

class baseClass {
public:
  friend int friendFuncReturn(baseClass &obj) { return obj.baseInt; }
  baseClass(int x) : baseInt(x) {}
private:
  int baseInt;
};

class derivedClass : public baseClass {
public:
  derivedClass(int x, int y) : baseClass(x), derivedInt(y) {}
private:
  int derivedInt;
};

在函数中friend int friendFuncReturn(baseClass &obj) { return obj.baseInt; }我不明白为什么基类的友元函数适用于派生类? 不应传递派生类 obj。而不是基类 obj。 t 被视为错误? 我的问题是为什么当我将派生类对象传递给它时它会起作用?


友元函数可以继承吗?

不,友元函数不会被继承。

为什么基类函数可以作用于派生类对象?

因为友元函数正在使用可用的数据成员base class仅有的。不是以下的数据成员derived class. Since derived class是一种base class所以,好友功能运行良好。但请注意这里derived class实例是sliced并且信息仅适用于base class. friend function如果您尝试访问受限制的成员,将会报告错误derived class. e.g.

 int friendFuncReturn(baseClass &obj) { return ((derivedClass)obj).derivedInt; }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

友元函数可以继承吗?为什么基类 FRIEND 函数可以在派生类对象上工作? 的相关文章

  • 如何向WebRequest添加参数?

    我需要从 Web 服务调用一个方法 所以我编写了以下代码 private string urlPath http xxx xxx xxx manager string request urlPath index php org get or
  • C++ 中的“int”默认是“signed long int”吗?

    Is int默认情况下signed long int in C 它是否依赖于平台和 或编译器 如果是这样 怎么办 EDIT 以下任何一项是否保证是重复的 signed short int signed int signed long int
  • 如何使用最小起订量模拟私有只读 IList 属性

    我试图嘲笑这个列表 private readonly IList
  • 在异步请求中使用超时回调

    我之前问过这个问题 但我将用提出的解决方案来完成这个问题 并提出另一个问题 我正在使用这个类来进行异步网络请求 http msdn microsoft com en us library system net webrequest aspx
  • 当 foreach 块的内容具有 Conditional 属性时,C# 编译器是否会对其进行优化?

    我正在工作中编写一些调试代码 我想知道我所做的是否会损害性能 让我们看一下代码 foreach var item in aCollection Debug WriteLine item Name 我知道 Debug 类使用 Conditio
  • 如何检查号码是否只有唯一的数字?

    例如 2345 是唯一的数字 因为没有数字显示两次 但 3324 不是唯一的数字 因为 3 出现了两次 我尝试使用 但我 代码 显示但我没有得到数字我得到了数字 编辑 你不能使用字符串 number 10 number 100 number
  • ASMX Web 服务,测试表单仅在本地计算机上适用于一种 WebMethod

    我有一个正在测试的 ASMX WebService 并且在大多数方法上我都可以使用测试表单进行测试 然而 我确实有一种方法 测试表上写着 The test form is only available for requests from t
  • 向Java类库添加函数

    我使用的 Java 类库在很多方面都不完整 有很多类我认为应该内置其他成员函数 但是 我不确定添加这些成员函数的最佳实践 让我们调用不足的基类A class A public A long arbitrary arguments publi
  • 多线程 - 比单线程慢

    当我使用多个线程而不是单线程运行程序时 它会变慢 不是应该更快吗 该程序应该遍历从起始目录开始的所有目录 并查找并打印所有名为 X 的文件 代码如下 while done pthread mutex lock lock if list is
  • 从 Golang 调用 C 函数

    我想在 Golang 中编写控制器逻辑并处理 json 和数据库 同时在 C 中使用我的数学处理模型 在我看来 调用 C 函数的开销必须尽可能低 就像设置寄存器 rcx rdx rsi rdi 一样 执行一些操作fastcall 并获取 r
  • 多个线程访问一个变量

    我在正在读的一本教科书中发现了这个问题 下面也给出了解决方案 我无法理解最小值怎么可能是 2 为什么一个线程不能读取 0 而所有其他线程都执行并写入 1 而无论是1还是2 最后写入的线程仍然必须完成自己的循环 int n 0 int mai
  • 原子的 C++ 内存屏障

    在这方面我是个新手 谁能提供以下内存屏障之间差异的简化解释 窗户MemoryBarrier 围栏 mm mfence 内联汇编asm volatile memory 内在的 ReadWriteBarrier 如果没有简单的解释 一些好文章或
  • Web 文本编辑器中的 RTF 格式

    网络上是否有支持 RTF 格式文档输入的文本编辑器 我知道这对 webdev 来说有点奇怪 但我需要从数据库中读取 RTF 文档 并在基于 Web 的文本编辑器中对其进行编辑 然后将其存储回 RTF 中 在我在转换工具上投入太多资金之前 我
  • 重定向 std::cout

    我需要一个类 在其对象的生命周期内将一个 ostream 重定向到另一个 ostream 经过一番修补后 我想出了这个 include
  • 确定相关词的编程方式?

    使用网络服务或软件库 我希望能够识别与词根相关的单词 例如 座位 和 安全带 共享词根 座位 但 西雅图 不会被视为匹配 简单的字符串比较对于这类事情似乎是不可行的 除了定义我自己的字典之外 是否有任何库或 Web 服务不仅可以返回单词定义
  • 如何在 ASP.NET Core 项目中使用 MStest 测试 Ok() 结果

    我正在使用 MStest 来测试我的控制器 我想测试这个动作 HttpGet Name GetGroups public async Task
  • 如何在 SQLite 中检查数据库是否存在 C#

    我目前正在用 C 编写一个应用程序 并使用 sqlite 作为嵌入式数据库 我的应用程序在启动时创建一个新数据库 但如何让它检查数据库是否存在 如果它确实存在 我如何让它使用它 如果不存在如何创建一个新数据库 这是我到目前为止所拥有的 pr
  • 检查另一种形式的线程是否仍在运行

    我有一个涉及两个窗体的 Windows 窗体应用程序 子表单用于将数据导出到 CSV 文件 并使用后台工作者写入文件 当这种情况发生时 我隐藏了表格 当后台工作程序运行时 父窗体仍然处于活动状态 因此即使后台工作程序正在写入文件 用户也可以
  • 如何创建实体集或模型而不在数据库中创建相应的表 - 实体框架

    我的 sqlserver 数据库中有一个存储过程 它返回多个结果集 我正在使用 msdn 中的以下链接从实体框架中的 SP 读取多个结果集 https msdn microsoft com en us library jj691402 v
  • 线程安全的有限大小队列,不使用锁

    我正在尝试编写一个主题队列 但遇到死锁和其他多线程问题 我想用Interlocked CompareExchange避免lock用法 但这段代码并没有按预期工作 它只是擦除整个队列 我在这里做错了什么 public class FixedS

随机推荐

  • 让 Log.i 继续生产安全吗?

    在我的android应用程序中我广泛使用Log i Log e 在这些命令中 我通常传递与我的应用程序通信的 SQLite 查询或 http 剩余 URL 我的问题是 当应用程序到达 Play 商店时保留这些日志是否安全 如果用户在其设备连
  • 如何在react中从http重定向到https?

    我在 Chrome 中的审核显示了 net ERR EMPTY RESPONSE 因为 Lighthouse 无法可靠地加载我请求的页面 Google 开发人员建议我配置我的服务器 node js 以从 http 重定向到 https 我尝
  • 全局禁用 sbt supershell

    如同这个问题 https stackoverflow com questions 61432711 sbt 1 3 8 displaying a lot of useless messages我想阻止 sbt 用消息和空行向 shell 发
  • 在 pickle 文件中保存和加载多个对象?

    我有一个类为游戏中的玩家提供服务 创建他们和其他东西 我需要将这些播放器对象保存在文件中以便稍后使用 我尝试过 pickle 模块 但我不知道如何保存多个对象并再次加载它们 有没有办法做到这一点 或者我应该使用其他类 例如列表 并在列表中保
  • 为什么我们需要容器?

    作为借口 标题模仿了标题为什么我们需要单子 https stackoverflow com questions 28139259 why do we need monads 有容器 http www sciencedirect com sc
  • celery .delay 挂起(最近,不是身份验证问题)

    我正在运行 Celery 2 2 4 djCelery 2 2 4 使用 RabbitMQ 2 1 1 作为后端 我最近上线了两台新的 celery 服务器 我一直在两台机器上运行 2 个工作线程 总共有大约 18 个线程 在我的新增强的盒
  • AssertionError:“HyperlinkedIdentityField”需要序列化器上下文中的请求

    我想创建一个many to many一个人可以加入多个俱乐部 一个俱乐部可以有很多人的关系 我添加了models py and serializers py对于以下逻辑 但当我尝试在命令提示符中序列化它时 出现以下错误 我在这里做错了什么
  • Typescript:为什么 keyof {} 的类型是 never?

    我很困惑keyof应用于空对象时的运算符 示例代码 const o const k Array
  • React 替换 componentWillReceiveProps

    在我的子组件中有以下方法可以更新道具更改的状态 效果很好 componentWillReceiveProps nextProps update original states this setState fields nextProps f
  • 使用预输入时在 onblur 事件期间选择值

    我有一个简单的预先输入获取货币列表 当我开始输入并选择所需的值 或按 TAB 键 时 就会选择所需的值 直到此时一切都按预期进行 然而 如果我输入整个单词并在输入外部单击而不是选择值 onblur 事件 那么即使我输入中的值与过滤器值匹配
  • 量角器覆盖范围不生成报告

    我们应用程序的后端位于PHP对于前端我们正在使用AngularJs 我们成功地在本地和生产服务器上运行了 e2e 测试 使用protractor 在为我们的应用程序编写大量 e2e 测试后 我们开始寻找与单元测试类似的覆盖范围 经过一番寻找
  • C++中如何返回NULL对象

    我知道这可能是以下内容的重复 如果未找到搜索结果 则返回 NULL 对象 https stackoverflow com questions 2639255 c return a null object if search result n
  • 在java中创建mongodb上限集合

    我想从 Java 代码创建一个上限集合 我找到了通过 JavaScript 创建它的语法 但找不到 Java 的示例 Mongo mongo new Mongo 127 0 0 1 DB db mongo getDB mydbid DBCo
  • npm run android 不会启动 Android 应用程序

    Issue 我能够清除我的最后一个issue https stackoverflow com questions 54231555 unable to resolve dependency for could not resolve pro
  • Mixin 黯然失色

    假设我有这样的代码 class A foo gt A class B foo gt B class C foo gt C class Mix extends A with B C foo gt MIX bar gt super foo cl
  • 在 Firebase Functions 和 React 之间共享代码

    我正在将 Firebase 函数与 React 应用程序一起使用 我有一些重要的代码 我不想重复 所以我想在已部署的函数和我的 React 客户端之间共享它 我已经在我的 React 客户端本地工作了 尽管我还没有尝试部署 但我无法部署我的
  • 在R的scales包中,为什么trans_new使用inverse参数?

    我刚刚被建议使用 r 的 scales 包中的 trans new 方法来使用立方根转换绘图的 x 轴 我使用 trans new 定义立方根函数 然后使用该立方根函数来变换 x 轴 大概这个练习更具学术性而不是实用性 我通过 trans
  • 如何在 Mac OS X 上不使用 sudo 安装 gem

    我读过很多帖子 但到目前为止还没有一个能做到这一点 我如何在 OSX El Capitan Beta 上为我自己的用户安装 gem 帖子建议指定 user install例如但我不能打电话gem没有sudo根本没有 因为它会引发权限错误 我
  • 函数返回是否必须称为闭包

    嘿 我在 youtube 上看到了这个视频http www youtube com watch v KRm h6vcpxs http www youtube com watch v KRm h6vcpxs 这基本上解释了 IIFE 和闭包
  • 友元函数可以继承吗?为什么基类 FRIEND 函数可以在派生类对象上工作?

    class baseClass public friend int friendFuncReturn baseClass obj return obj baseInt baseClass int x baseInt x private in