首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

菜鸟的小异常

2012-02-27 
初学者的小错误,本人是初学者,运行最后一个文件时出错,提示如下,编译stack.cpp时无错误信息,不知什么原因,

初学者的小错误,
本人是初学者,运行最后一个文件时出错,提示如下,编译stack.cpp时无错误信息,不知什么原因,请各位高手指点,谢谢!
Linking...
ex11_4.obj   :   error   LNK2001:   unresolved   external   symbol   "public:   __thiscall   Stack::~Stack(void) "   (??1Stack@@QAE@XZ)
ex11_4.obj   :   error   LNK2001:   unresolved   external   symbol   "public:   __thiscall   Stack::Stack(int) "   (??0Stack@@QAE@H@Z)
ex11_4.obj   :   error   LNK2001:   unresolved   external   symbol   "public:   static   int   __cdecl   Stack::getObjNum(void) "   (?getObjNum@Stack@@SAHXZ)
Debug/ex11_4.exe   :   fatal   error   LNK1120:   3   unresolved   externals
Error   executing   link.exe.

ex11_4.exe   -   4   error(s),   0   warning(s)


//stack.h
class   Stack
{
public:
Stack(int   size);
~Stack();
int   pop(int   &num);
int   push(int   mem);
static   int   getObjNum();
private:
int   *data;
int   memNum;
int   size;
static   int   objNum;
};
/////////////////////////////////////////////
//stack.cpp
#include "stack.h "
Stack::Stack(int   s)
{
data=new   int[s];
size=s;
memNum=0;
objNum++;
}
Stack::~Stack()
{
delete   []   data;
objNum--;
}

int   Stack::pop(int   &num)
{
if(memNum==0)
return   0;
num=data[--memNum];
return   1;
}

int   Stack::push(int   mem)
{
if(memNum==size)
return   0;
data[memNum++]=mem;
return   1;
}

int   Stack::objNum=0;

int   Stack::getObjNum()
{
return   objNum;
}
///////////////////////////////////////////////////
//
#include "stack.h "
#include <iostream.h>
main()
{
cout < < "there   is " < <Stack::getObjNum() < < "stack. " < <endl;
{
Stack   one(10);
Stack   *ptr=&one;
cout < < "after   stack   one   created,there   is " < <one.getObjNum()
< < "stack. " < <endl;
{
Stack   two(10);
cout < < "after   stack   two   created,there   are "
< <two.getObjNum() < < "stacks " < <endl;
}
cout < < "after   stack   two   destroyed,there   is " < <one.getObjNum() < < "stack. " < <endl;
}
cout < < "after   stack   one   destroyed,there   is " < <Stack::getObjNum() < < "stacks. " < <endl;
return   0;
}

[解决办法]
在我机器上好像没啥问题啊。
[解决办法]
楼主是怎么编译的?是不是只编译了ex11_4.cpp,没有编译stack.cpp啊?
[解决办法]
没出现问题
[解决办法]
八成楼主是只编译了ex11_4.cpp,没有编译stack.cpp
[解决办法]
那种错误的原因一般是说没找到函数的实现体
要么是没只包含了头文件没包含lib库或者就象楼上说的没编cpp文件吧


[解决办法]
建一个win32 console project,把三个文件加入的Project里面,编译即可

热点排行