friend相关内容

单元测试一个类声明为朋友(内部)

在我的一些测试帮助程序代码中,我有一个名为FakeDbSet(Of T)的IDbSet(Of T)实现,该实现可在没有实际数据库的情况下模拟许多EF行为.我有一个声明为Friend的类,因为我想强制所有代码像IDbSet(Of T)那样与之交互.在内部(即,在我的Testing程序集中),我访问了我想测试的课程的许多公共成员. 问题是,我将单元测试保存在单独的程序集中Test.Unit,这意 ..
发布时间:2020-11-10 23:20:47 C#/.NET

为什么通过ADL成功找到好友功能

考虑以下代码: #include class A { public: friend void foo(A a){ printf("3\n"); } }; int main() { foo(A()); } 有效.但是我认为这段代码是无效的.这是因为3.4.1/3: 为了确定(在解析过程中)表达式是否为 函数调用的后缀表达式,常用名称查找规则 ..
发布时间:2020-11-10 23:18:34 C/C++开发

为什么不能在类中引用已声明的朋友类的转发?

以下代码无法编译: struct X { friend class Y; Y* ptr; }; cppreference 将情况描述为 ...如果在朋友声明中使用的类的名称是 尚未声明,它是当场提前声明. 如果“地点"表示在其中声明了朋友关系,则可以很好地声明成员Y* ptr.为什么不编译?在标准中哪里禁止这样做? 解决方案 这是网站上的错误.它违反了标准,该 ..
发布时间:2020-11-10 23:17:14 C/C++开发

C ++朋友类std :: vector

是否可以随便执行以下操作: struct structure { structure() {} private: // only allow container copy construct structure(const structure&) {} // in general, does not work because allocator (not ve ..
发布时间:2020-11-10 23:16:45 C/C++开发

可以在C ++ 03中有条件地声明friend类吗?

仅当某些(编译时)条件为true时,我才想声明一个朋友类.例如: // pseudo-C++ class Foo { if(some_compile_time_condition) { friend class Bar; } }; 我在互联网上找不到任何解决方案.我仔细研究了在编译时动态生成结构的所有答案.他们中的许多人都使用C ++ 11 std::co ..
发布时间:2020-11-10 23:16:44 C/C++开发

朋友课程的部分模板专业化?

我有一个简单的类X,和一组模板化类Y.我希望所有第一个模板化参数恰好是X的类Y都成为X本身的朋友.以下希望传达出我想要的内容,但是友友语句给出了编译错误. template class Y { }; class X { public: X(int value) : i(value) {} c ..
发布时间:2020-11-10 23:16:41 C/C++开发

调用struct中定义的friend函数需要正向声明吗?

在阅读Karlsson的超越C ++标准时,作者在 class reference_counted 类的正文中定义了朋友功能 intrusive_ptr_add_ref (请参见第36页).该函数会在适当的时候使用Argument Dependent Lookup自动调用. 我从来没有见过在类的主体中定义的好友函数,而是四处探索,发现如果不使用ADL查找,gcc 4.4.3需要进行前向声明. ..
发布时间:2020-11-10 23:16:34 C/C++开发