gpt4 book ai didi

c++ - 错误c2248命名空间内的 friend 类

转载 作者:行者123 更新时间:2023-12-02 11:03:28 25 4
gpt4 key购买 nike

我正在尝试设置与此类似的代码:

//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
}
}

而且我得到了错误

"Error 101 error C2248: 'Class1::Create' : cannot access private member declared in class 'Class1'"



。是什么原因造成的?我是在错误地宣告友谊吗?

最佳答案

我在Code:Blocks 13.12(SDK版本1.19.0)以及ideone.com上尝试了您的示例。

我进行了使其成功编译的唯一更改是

  • 在 friend 声明
  • 之后添加分号
  • 将空块{}添加到Class1的ctr和dtr中
  • 当然,我还删除了include语句(全部放入一个文件中)
  • 关于c++ - 错误c2248命名空间内的 friend 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27359314/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com