命名空间内的错误 c2248 朋友类
Posted
技术标签:
【中文标题】命名空间内的错误 c2248 朋友类【英文标题】:error c2248 friend class inside namespace 【发布时间】:2014-12-08 13:39:56 【问题描述】:我正在尝试设置类似这样的代码:
//Class1.h
namespace A
class Class1
friend class Class2
public:
Class1();
~Class1();
private:
void Create() /*do nothing for now*/ ;
;
//Class2.h
#include "Class1.h"
namespace A
class Class2
void Test();
;
//end namespace A
//Class2.cpp
#include "Class2.h"
namespace A
void Class2::Test()
Class1 object = Class1();
object.Create(); //error c2248
我得到了错误
“错误 101 错误 C2248: 'Class1::Create' : 无法访问私有 在类 'Class1' 中声明的成员"
。什么会导致这个?我是否以错误的方式宣示友谊?
【问题讨论】:
This works fine 在 gcc 上。您的问题可能出在其他地方。 还要注意朋友声明中缺少的分号。 【参考方案1】:我使用 Code:Blocks 13.12(SDK 版本 1.19.0)以及 ideone.com 尝试了您的示例。
我所做的唯一更改以使其成功编译
在朋友声明后添加分号 将空块
添加到Class1
的ctr 和dtr
当然,我也删除了包含语句(全部放在一个文件中)
【讨论】:
以上是关于命名空间内的错误 c2248 朋友类的主要内容,如果未能解决你的问题,请参考以下文章