命名空间内出现错误 C2248 友元类
error c2248 friend class inside namespace
我正在尝试设置类似于以下内容的代码:
//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: '类 1::创建' : 无法访问私有 成员在"类1"中声明"
.什么原因会导致这种情况?我宣布友谊的方式是错误的吗?
我用 Code:Blocks 13.12(SDK 版本 1.19.0)以及 ideone.com 尝试了您的示例。
我为成功编译它所做的唯一更改是
- 在朋友语句后添加分号
- 将空块
{}
添加到Class1
的点击率和 DTR 中 - 当然,我也删除了包含语句(全部放入一个文件中)
相关文章:
- C++模板来检查友元函数的存在
- 模板类无法识别友元运算符
- 如何使用单独文件中的派生类访问友元函数对象
- 模板化的类和友元函数
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- 如何在嵌套类中正确使用友元声明?
- 友元函数无法访问私有数据成员 (c++)
- 继承和友元函数,从基类访问受保护的成员
- 将子类方法声明为基类的友元
- 如何在友元函数中使用静态成员而不添加前缀 [类名]::
- 在将函数声明为友元时,尖括号的含义是什么?
- 在模板类之外定义友元函数的正确方法是什么?
- 2个模板化类的非模板友元函数未定义引用错误
- 友元方法作为常量
- C++ 友元函数和私有构造函数
- 使第二个类的构造函数成为第一个类中的友元函数
- 在为嵌套类定义行外友元时,我真的必须打破封装吗?
- 未定义的类模板不会实例化以检查友元函数
- C++类中的友元函数有问题?
- 命名空间内出现错误 C2248 友元类