草庐IT

Bottle-friendly

全部标签

c++ - 声明 protected 功能 friend

A::foo是否需要为B声明为public以将其声明为friend?classA{protected://public?voidfoo(intx);};classB:publicA{friendvoidA::foo(int);//notfinewithGCC4.8.1butfinewithVS2013voidgoo(intx){foo(x);}//finestaticvoidhoo(intx){}};voidA::foo(intx){B::hoo(x);}//frienddeclarationneededforthisVisualStudio2013认为如果A::foo受到保护就没问题

c++ - 为什么friend类可以通过Derived类访问到Base类私有(private)数据

这是我第一次在这里发帖。classBase{private:intbase;friendclassQuestion;};classDerived:publicBase{private:intsuper;};classQuestion{public:voidtest(Base&base,Derived&derived){intvalue1=base.base;//Noproblem,becauseQuestionisafriendclassofbaseintvalue2=derived.super;//Compileerror,becauseQuestionisnotafriendcla

c++ - 使用 friend 函数,我们可以覆盖类的私有(private)成员吗?

在给定的C++代码中,DEF类的私有(private)成员在构造函数中初始化,并在友元函数中再次初始化。所以重定义会覆盖私有(private)变量还是构造函数给的值会一直存在?#include//classDEF;classABC{public:intfun(classDEF);};classDEF{private:inta,b,c;public:DEF():a(1),b(12),c(2){}friendintABC::fun(classDEF);/*Usingfriendfunctiontoaccesstheprivatememberofotherclass.*/voidfun_2(

c++ - 让 friend 类只能特殊访问另一个类的 1 个函数?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Isthiskey-orientedaccess-protectionpatternaknownidiom?我有A类和B类。我想让classA访问classB的私有(private)函数之一;但仅此而已,而不是其他一切。这可能吗?一些例子:classA{//stuff};classB{intr;//AcantusethisMagicFriendKeywordAvoidfunc();//Acanusethispublic:...};

c++ - friend 应该在嵌套类中传递吗?

classprivate_object{private:structmake_public;friendstructmake_public;staticvoidmethod1(){}};structprivate_object::make_public{classnested_outer{voidcallFromOuter(){private_object::method1();}//Shouldthisbeanerror?classnested_inner{voidcallFromInner(){private_object::method1();}//Howaboutthisone

c++ - 我如何让 main 成为我类(class)的 friend ?

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭11年前。我认为这是可能的,但编译器提示它无法访问我的类的protected/私有(private)成员。我试过四处移动东西并更改签名,但找不到有效的组合。我基本上有:classMyClass{public:friendintmain(intargc,char**argv);private:voidtest(){cout

c++ - 私有(private)类的 friend

如何为私有(private)类(class)定义friend?#includeclassBase_t{private:structPriv_t{friendstd::ostream&operator错误::!maket17|&tee/tmp/vB5G5ID/54g++t17.cpp-ot17t17.cpp:Infunction'std::ostream&operator当我直接在Priv_t中定义friend时它有效friendstd::ostream&operator如何在类/结构定义之外做到这一点? 最佳答案 虽然Priv_t是

c++ - `template <class> friend class Foo` 是什么意思?

我正在探索boost::iterator_facade并遇到了这段代码:friendclassboost::iterator_core_access;templatefriendclassIterator;第二行是什么意思?我熟悉friend类,但我想我没见过template在任何事情之前。这里是上下文:templateclassnode_iter:publicboost::iterator_facade,Value,boost::forward_traversal_tag>{public:node_iter():m_node(0){}explicitnode_iter(Value*p

C++ 运算符覆盖 - 为什么它是 friend 首选?

继续previousquestion我想问一下为什么首选C++运算符覆盖中的“friend”形式的加法总结:对于加法运算符覆盖有两种方法:intoperator+(Object&e);friendintoperator+(Object&left,Object&right);为什么首选第二种(friend)形式?有什么优势? 最佳答案 首选非成员版本(友元或其他版本),因为它可以支持运算符左右两侧的隐式转换。给定一个可以隐式转换为Object的类型:structWidget{operatorObject()const;};如果Widg

iPhone SDK : Tag friends in Post using Facebook Graph API

我尝试使用FBRequestConnection类方法startForPostStatusUpdate:place:tags:completionHandler:发布带有friend标签的状态作为[selfdismissViewControllerAnimated:YEScompletion:nil];[FBRequestConnectionstartForPostStatusUpdate:Messageplace:niltags:[NSArrayarrayWithArray:users]completionHandler:^(FBRequestConnection*connectio