friend相关内容

友元类继承

如果我有两个继承类如下: class A { .. 。 } class B:public A { ... } 第三个类定义为A类朋友: class C { friend class A; } 我是否可以从 / code>(其也是 A 类型的对象)类C 的所有成员,已经定义 class B 首先是朋友Class? ..
发布时间:2016-10-14 21:54:07 C/C++开发

c ++ friend function - operator overloading istream>>

我的问题是关于朋友的功能,以及重载>。从我的理解,我认为朋友函数可以(应该)直接访问私有成员变量。但是在这种情况下,编译器只接受我的.cxx文件,当我使用“get”函数来获取每个私有变量。 这里是我的头文件 class BigNum public: // Constructors和DESTRUCTORS BigNum ); BigNum(int num,si ..
发布时间:2016-10-14 20:56:06 C/C++开发

模板标识的朋友查找异常?

请考虑[namespace.memdef] / 3中的以下子句: 如果 声明既不是 限定也不是 template-id ,声明是一个函数或 elaborated-type-specifier 以确定实体是否先前已被声明,不应考虑最内层 之外的任何范围包含命名空间。 原因为 template-id 与限定名称的例外?对于这一点,有没有理由查找一个非限定名称,不是一个 template ..
发布时间:2016-10-14 20:48:57 C/C++开发

使单元测试成为测试类的朋友有什么问题?

在c ++中;我经常让单元测试类成为我测试类的朋友。我这样做是因为我有时觉得需要为一个私有方法编写一个单元测试,或者也许我想访问一些私有成员,所以我可以更容易地设置对象的状态,所以我可以测试它。对我来说,这有助于坚持封装和抽象,因为我不修改类的公共或保护的接口。 如果我购买第三方库,我不想它的公共接口被一堆公共方法污染,我不需要知道简单地因为供应商想要单元测试! 也不需要担心一群受保护 ..
发布时间:2016-10-14 11:47:16 C/C++开发

声明模板类的模板朋友函数

我有一个模板类 Obj 和一个 make_obj 函数。 Obj 定义了一个构造函数,它引用要绑定的模板类型。 template 类Obj { private: T& t; Obj(T& t) :t {t} {} }; template Obj make_obj(T& t){ return {t}; ..
发布时间:2016-10-14 10:26:12 C/C++开发

朋友和内联方法,有什么意义?

我在标题中看到,我没有写自己以下内容: 类MonitorObjectString:public MonitorObject { //一些其他声明 friend inline bool operator ==(MonitorObjectString& lhs,MonitorObjectString& rhs){return(lhs.fVal == rhs.fVal); } 我 ..
发布时间:2016-10-13 12:18:41 C/C++开发

C ++中的朋友声明 - 公共和私有之间的区别

有人告诉我,在公共或私人领域声明一个朋友类是有区别的,但我似乎不能在网上找到任何东西,我不知道他们知道他们是什么谈论。 我的意思是: class A { public: friend class B; }; 和 class A { private://或者没有默认值为private friend class B; }; ..
发布时间:2016-10-13 12:06:53 C/C++开发

为什么一个C ++的朋友类只需要在其他命名空间中的前向声明?

假设我有一个类 F ,应该是类 G (在全局命名空间)的朋友, C (在命名空间 A )。 成为的朋友 成为 G 的朋友,不需要 F 的向前声明。 同样,类 A :: BF 可以是 A :: C 无前向声明 以下代码说明了这一点,并使用GCC 4.5,VC ++ 10和至少一个其他编译器进行编译。 class G { friend class F; int g; } ..
发布时间:2016-10-13 12:01:27 C/C++开发

干净的C ++粒度的朋友等同? (答案:律师 - 客户成语)

为什么C ++有 public 任何人都可以调用的成员和 friend 声明公开 all private 成员提供给 外部类或方法,但不提供任何语法向特定成员公开给定的呼叫者? 我想表达一些例程的接口,只由已知的调用者调用,而不必给这些调用者完全访问所有privates,这感觉像一个合理的东西想要的。最好的我可以想出自己(下面),其他人的建议迄今为止围绕习语/不同间接性的模式,其中我真的只是 ..
发布时间:2016-10-13 11:58:04 C/C++开发

模板友谊

我尝试使用不同的模板参数访问模板类的受保护变量。带有模板参数的朋友声明会出现以下错误: 不允许使用多个模板参数列表 我的代码是 模板 class MyClass { //不允许多个模板参数列表 template friend class MyClass //语法错误:template ..
发布时间:2016-10-13 11:44:51 C/C++开发

必须在声明朋友时声明类键

当我声明一个朋友时,g ++编译器抱怨这个错误: friend MyClass; 而不是 friend class MyClass; 为什么需要 class 关键字? (Borland C ++编译器,BTW,不需要它。) 无法编译器在符号表中查找MyClass,被声明为类? (它显然是在做查找反正,因为它抱怨当MyClass它没有 ..
发布时间:2016-10-13 11:21:50 C/C++开发

friend关键字(类/函数)如何破坏C ++中的封装?

一些程序员说,“一个朋友函数打破了C ++中的封装”。一些程序员也说,“朋友的功能不会打破封装,而是自然延伸封装的障碍” 这是什么意思? 如果朋友函数打破了C ++中的封装,那么如何 解决方案 a href =“http://www.parashift.com/c++-faq-lite/friends.html#faq-14.2”> C ++常见问题,我认为它描述的情况与朋友和 ..
发布时间:2016-10-13 10:22:58 C/C++开发