0

在啊

#pragma once
include "B.h"
class A {
    B* aPtrToB;
}

在 Bh

#pragma once
include "A.h"
class B{
    A* aPtrToA;
}

visual c++ 说“错误 C2065:'A':未声明的标识符”

有任何想法吗?

谢谢!

4

1 回答 1

5

你有一个循环包含。这#pragma once是防止由此产生的无限包含,但这意味着要么A没有B上面的定义,要么没有上面B的定义,A这取决于哪个先编译。

解决方案是不要#include使用头文件,因为您只需要一个前向声明来声明一个指针:

#pragma once

class B;

class A {
    B* aPtrToB;
};

和:

#pragma once

class A;

class B {
    A* aPtrToA;
};
于 2013-05-21T19:44:47.140 回答