问题标签 [friend-function]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 2个班级可以共享一个朋友功能吗?
今天我对朋友功能有疑问。两个班级可以有相同的朋友功能吗?说
friend void f1();
在 A 类和 B 类中声明的示例。这可能吗?如果是这样,函数 f1() 可以访问两个类的成员吗?
c++ - 朋友函数未声明的标识符
我正在使用 OpenCV 和 Qt 5。对于我正在做的一些工作,我需要将鼠标回调传递给命名窗口。但是,我无法让它看到我班级的任何私有成员变量。
这是一些代码:
好友功能:
我不知道我做错了什么。我很确定这是声明这一点的正确方法。它告诉我预览和拖动是未声明的标识符。不幸的是,我需要这样做,因为我需要访问私有成员,并且由于隐藏了这个参数,所以不可能将指针传递给成员函数。
任何人都可以帮忙吗?谢谢!
c++ - 类函数隐藏的C++友元函数?
最小的例子:
g++ 4.7 说:
结果第 4 行:
......它工作正常。如果我想保留交换函数的两个变体,为什么以及如何解决这个问题?
c++ - 在 C++ 中使用友元函数需要帮助
我是 C++ 的新手。我写了一个简单的程序来实现友元函数的使用。代码如下:-
我在 C++ 中收到以下错误。
编辑 谢谢。它解决了这个问题。
但它现在把我引向另一个问题。friend 关键字现在不是损害了使用的目的吗private
,因为现在任何类或函数都可以简单地使用friend 函数来访问私有数据成员。如果是,我们可以简单地声明它们数据成员作为public
而不是。private
使用有什么特别之处private
?
c++ - 如何在 C++ 中为友元函数提供保护
我刚刚开始学习 C++ 中的友元函数。这是我用于概念探索的程序。
现在我担心 class 的安全性one
已经two
受到损害,因为现在任何人都可以使用这些全局定义的朋友函数来访问 classone
和 classtwo
的私有成员。如何为这些好友功能提供保护或限制其使用?
c++ - 如何使 boost::apply_visitor 成为类访问者的朋友功能?
如何使boost::apply_visitor
(两种变体中的任何一种)成为班级访问者的朋友功能?
我尝试了以下方法:friend result_type boost::apply_visitor<>(decltype(*this) &, instruction_type const &);
,但这不起作用。*this
派生自boost::static_visitor
(或具有using result_type = ...;
typedef)并且指令类型是boost::variant
某些特定类型的。*this
在部分中有所有必需operator ()
的 -s private
。
这种声明的正确形式是什么?
c++ - 我的朋友功能没有执行
我在头文件中声明了一个友元函数,并在我的 .cpp 文件中定义了它,但是当我编译时,我被告知变量“尚未在此范围内声明”。据我了解,当一个函数被标记为类的朋友时,该函数能够直接访问该类的所有成员,那么为什么会出现此错误?
我的 .h 文件:
my.cpp 文件中的函数
注意:在我的 Main.cpp 中,我正在创建一个对象“emp2”。这是作为参数传递给函数的。
c++ - 从另一个类模板访问变量
我正在尝试制作一个容器类系统,该系统可以与数据加载器类一起使用以从文本文件中加载数据
以下是两类数据:
这些是我的两个容器类:
最后是我的数据加载器模板:
我在 Customer 和 Tour 中重载了 >> 运算符,以便可以将 ifstream 传递给它们,从流中取出一行,标记化并将其放入对象实例变量中。
容器类按顺序处理插入,数据加载器管理列表并创建 ifstream 以便可以将其传递给对象。
所以我的第一个问题——已解决——是如何让我的 DataLoader 类工作,以便我可以通过以下方式在 main 中初始化它:
然后它会自动实例化以下实例变量:
或者这甚至可能吗?
我的第二个问题——未解决——是这样的:
我首先加载我的客户文件,然后填充该列表。
之后,我必须加载旅行,其中包含预订客户的 customerID,并且我想将这些客户存储在每个旅行对象中的指针向量中,以便轻松访问客户信息。
目前我将 customerIDs 存储为字符串列表,然后当所有旅行都加载后,将 custList 传递给通过 custList 搜索的函数,将其与字符串列表匹配
这意味着我必须维护两个列表,一个是字符串,另一个是指针,并且基本上是双重处理所有数据..考虑到数据集非常大,这意味着加载时间要长得多..
所以我想知道是否有一种方法可以从 Tour 的重载 >> 运算符内部访问 custList 实例变量,并在创建 Tour 对象时生成指针列表?
从技术上讲,一切都发生在 DataLoader 类的范围内,所以我认为这应该是可能的,但我只是不太确定如何去做.. 也许让它成为一个朋友类?我试过这样做,但到目前为止还没有运气..
任何帮助将不胜感激,并对冗长的解释感到抱歉,希望它有意义..
c++ - 从另一个模板类访问实例变量
(主要是从另一个类模板访问变量粘贴来分离两个问题)
我正在尝试制作一个容器类系统,该系统可以与数据加载器类一起使用以从文本文件中加载数据
以下是两类数据:
这些是我的两个容器类:
最后是我的数据加载器模板:
我在 Customer 和 Tour 中重载了 >> 运算符,以便可以将 ifstream 传递给它们,从流中取出一行,标记化并将其放入对象实例变量中。
容器类按顺序处理插入,数据加载器管理列表并创建 ifstream 以便可以将其传递给对象。
这是我的问题:
我首先加载我的客户文件,然后填充该列表。
之后,我必须加载旅行,其中包含预订客户的 customerID,并且我想将这些客户存储在每个旅行对象中的指针向量中,以便轻松访问客户信息。
目前我将 customerIDs 存储为字符串列表,然后当所有旅行都加载后,将 custList 传递给通过 custList 搜索的函数,将其与字符串列表匹配
这意味着我必须维护两个列表,一个是字符串,另一个是指针,并且基本上是双重处理所有数据..考虑到数据集非常大,这意味着加载时间要长得多..
所以我想知道是否有一种方法可以从 Tour 的重载 >> 运算符内部访问 custList 实例变量,并在创建 Tour 对象时生成指针列表?
从技术上讲,一切都发生在 DataLoader 类的范围内,所以我认为这应该是可能的,但我只是不太确定如何去做.. 也许让它成为一个朋友类?我试过这样做,但到目前为止还没有运气..
任何帮助将不胜感激,并对冗长的解释感到抱歉,希望它有意义..