我定义了一个自己的类叫chess,并且在chess类中定义了一个chess类型的指针变量*b, 然后在另一个类的cpp文件中用extern chess *b引用这个变量,并且在一个函数中new一个chess对象并赋值给b。最后单独编译所有的cpp文件都能顺利成功,但link时总是报错说:
Linking...
gameFrame.obj : error LNK2001: unresolved external symbol "class chess * b" (?b@@3PAVchess@@A)
Debug/gameApp.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.不知我错在那里了?
Linking...
gameFrame.obj : error LNK2001: unresolved external symbol "class chess * b" (?b@@3PAVchess@@A)
Debug/gameApp.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.不知我错在那里了?
类中
chess * b;
在其它类中使用某个预先定义的类
在头文件(.h)中类的定义之前:
class chess;
....
chess * m_pChess;在实现文件(.cpp)中:
#include "chess.h"
.....
m_pChess = new chess;
m_pChess->....
或者直接指向某个实例:
m_pChess = g_pOther->m_pChess;
这样引用是错误的。extern chess *b是一个全局变量,而chess类中定义的一个chess类型的指针变量*b是成员变量。即使b是静态的,访问它也需要加上chess::前缀。