草庐IT

friendly

全部标签

c++ - Clang 与 GCC : Friend-ing a global function via qualified/unqualified names

我正在尝试确定是否针对Clang、GCC或两者提交错误报告(我已经针对Clang主干和GCC4.7.2进行了测试:如果有人可以针对GCC主干验证这一点会有所帮助):基本上,在默认和C++11模式下,使用-fsyntax-only可以很好地编译以下代码三行文件:classA{friendvoidf();};请注意,没有事先声明f(),但这显然没问题。但是,Clang(但不是GCC)拒绝以下内容:classA{friendvoid::f();};来自Clang的错误是“在指定范围内找不到类型为'void()'的名为'f'的函数”,但我在标准中找不到任何理由来区别对待这种情况,所以我认为这是

c++ - A<T>的 friend 也可以成为A<A<T>>的 friend 吗?

考虑以下代码:#includetemplateclassContainer;templateContainer>make_double_container(conststd::vector>&);templateclassContainer{std::vectorv;friendContainer>make_double_container(conststd::vector>&);public:Container(){}explicitContainer(std::vectorv):v(v){}};templateContainer>make_double_container(cons

c++ - "friend"一个类是否扩展到该类中声明的类?

我有以下代码,其中A类将B类声明为friend。在B类中声明的C类是否应该能够查看A类的私有(private)声明/成员?使用CL版本16(VisualStudio2010)编译时没有错误,但gccg++版本4.1.1给出错误“typedefintA::Tisprivateinthiscontext”。函数调用作为typedef也会发生相同的行为(这就是我发现差异的方式)。classA{friendclassB;typedefintT;};classB{A::Tt;//oktypedefA::TU;//okclassC{Uu;//okA::Tv;//compileerrorongcc}

c++ - 如何与私有(private)嵌套类成为 friend

我认为我可以这样做:classTestA{private:classNested{};};classTestB{public:friendclassTestA;friendclassTestA::Nested;};但我得到一个错误:ErrorC2248'TestA::Nested':cannotaccessprivateclassdeclaredinclass有没有办法让私有(private)嵌套类成为friend?我该怎么做?我在尝试在MSVC2017(C++17)中编译MSVC6项目时遇到此错误。我想它当时有效。 最佳答案 与您

c++ - 如何在不创建 "friend"的情况下访问类外的私有(private)数据成员?

这个问题在这里已经有了答案:CanIaccessprivatemembersfromoutsidetheclasswithoutusingfriends?(27个回答)关闭5年前。我有一个classA,如下所述:-classA{intiData;};我既不想创建成员函数,也不想继承上面的classA,也不想改变iData的说明符。我的疑惑:-如何访问一个对象的iData,比如obj1,它是classA的一个实例?如何改变或操作对象obj1的iData?注意:不要使用friend。 最佳答案 这是一种方法,但不推荐classWeak{

c++ - friend 和内联方法,有什么意义?

我在标题中看到我没有给自己写以下内容:classMonitorObjectString:publicMonitorObject{//someotherdeclarationsfriendinlinebooloperator==(MonitorObjectString&lhs,MonitorObjectString&rhs){return(lhs.fVal==rhs.fVal);}我不明白为什么这个方法被声明为friend。我认为如果函数在另一个地方定义并且需要访问类的内部成员,这将是有意义的,但这里不是这种情况,因为它是内联的,甚至不需要访问成员。你怎么看?“friend”没用吗?

c++ - 为什么我不能在 friend 类中实例化一个构造函数是私有(private)的类?

我有两个类;Salary用于保存有关员工薪水的信息和计算,Employee具有classSalary类型的对象和一些成员,例如员工的姓名和地址...我想要做的是防止classSalary被实例化,除了classEmployee。所以我将Salary的构造函数声明为私有(private),并使Employee成为Salary的friend。但我得到错误:classEmployee;classSalary{public:private:Salary():revenue_{},cost_{}{}Salary(intx,inty):revenue_{x},cost_{y}{}intrevenu

c++ - 'friend' 函数和 << 运算符重载 : What is the proper way to overload an operator for a class?

在我正在进行的一个项目中,我有一个Score类,在下面score.h中定义.我正试图重载它,当对其进行操作,_points+""+_name被打印。这是我尝试做的:ostream&Score::operator以下是返回的错误:score.h(30):errorC2804:binary'operator(这个错误实际上出现了4次)我设法通过将重载声明为友元函数来使其工作:friendostream&operator并删除Score::来自score.cpp中的函数声明(实际上并未将其声明为成员)。为什么这行得通,而前一段代码却行不通?感谢您的宝贵时间!编辑我删除了对头文件重载的所有提及

node.js - 在 node.js 和 Mongoose 中添加 friend 路线的正确方法?

我打算创建一条路径,用户可以在其中添加另一个用户作为他/她的friend,以便他们成为friend后可以互相聊天。所以基本上一旦用户A向用户B发送了请求,用户B将通过socket.io获得有关该请求的实时通知现在的问题是,我无法想出自己的解决方案来实现上述场景,据我所知,我应该创建两个路由GET和发布我正在使用mongoose进行数据库查询、插入、更新和删除这是我的代码//GETrouteforgettingtheuser'sinformation--Simplerouterouter.get('/users/:facebook_name',function(req,res){User

java - Java的“ friend ”等价物?

这个问题在这里已经有了答案:关闭13年前。这里有点架构问题。在C++中,我们有“friend”的概念,这样的friend类可以访问私有(private)成员。所以,我正在开发一个Java应用程序并尝试遵守MVC架构。我有一个Controller类来管理“map_objects”之间的图形连接。我想通过使用这个Controller类来隐藏DTO'map_objects'中实际设置这些连接的函数。(即,即使Controller类实现了设置连接所需的功能,“用户”仍然可以直接访问DTO中的setter/getter函数来自行设置。)在这方面有什么设计模式或技巧吗?(或者我完全搞砸了?)重复I