错误c2248在命名空间内的朋友类

时间:2014-12-08 13:39:57

标签: c++ compiler-errors

我试图设置与此类似的代码:

//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'"

。什么会导致这个?我是以错误的方式宣布友谊吗?

1 个答案:

答案 0 :(得分:0)

我尝试使用代码:Blocks 13.12(SDK Version 1.19.0)以及ideone.com

我做的唯一更改才能成功编译

  • 在友情声明后添加分号
  • 将空块{}添加到Class1
  • 的ctr和dtr
  • 当然,我还删除了include语句(将所有内容放入一个文件中)