无法解析的外部符号,C++
问题描述:
尝试构建关于未解析的外部符号的项目时出现错误,但是我无法找到问题所在,哪里有任何想法?感谢无法解析的外部符号,C++
Tball.cpp
#include "Tball.h"
#include <Windows.h>
using namespace std;
Tball::Tball(){
Position = TVector(70,0,70);
Verlocity = TVector(1,0,1);
}
Tball.h
#ifndef Tball_h
#define Tball_h
#include <iostream>
#include "mathex.h"
#include "tvector.h"
class Tball
{
public:
static TVector Position;
static TVector Verlocity;
Tball();
static void DrawBall(float x, float y, float z);
static TVector MoveBall();
static void init();
static int loadbitmap(char *filename);
static void SurfaceNormalVector();
static double Tball::collision();
static void Tball::pointz();
};
#endif
错误:
1>------ Build started: Project: Breakout Complete, Configuration: Debug Win32 ------
1> Tball.cpp
1> Generating Code...
1>g:\work\second year\c++ breakout complete\breakout complete\tball.cpp(59): warning C4715: 'Tball::MoveBall' : not all control paths return a value
1> Skipping... (no relevant changes detected)
1> Tvector.cpp
1> TdisplayImp.cpp
1> TBricks.cpp
1>Tball.obj : error LNK2001: unresolved external symbol "public: static class TVector Tball::Verlocity" ([email protected]@@[email protected]@A)
1>Tball.obj : error LNK2001: unresolved external symbol "public: static class TVector Tball::Position" ([email protected]@@[email protected]@A)
1>G:\Work\Second year\C++ Breakout Complete\Debug\Breakout Complete.exe : fatal error LNK1120: 2 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
没有我试过似乎为我工作。
答
要把它放到你的CPP:
TVector Tball::Position(/* contructor params */);
TVector Tball::Verlocity(/* contructor params */);
这使得这些成员静态变量的 “空间”。
答
我没有看到的
static TVector Position;
static TVector Verlocity;
这个定义只是声明。您需要在一个.ccp文件中使用一些构造函数(可能是默认的)来定义它。静态成员不是每个对象的一部分,需要在对象构造函数以外的地方创建。
你的情况:
Tball.cpp
#include "Tball.h"
#include <Windows.h> // Why?
//using namespace std; Why??
TVector Tball::Position(70,0,70);
TVector Tball::Verlocity(1,0,1);
Tball::Tball(){}
你可以编辑你的问题,包括确切的错误吗?你使用的build命令的注释也非常方便。 – simonc 2013-04-11 12:41:29
Woops,对不起,请务必 – Unknown 2013-04-11 12:42:47
顺便它的拼写“速度” :) – 2013-04-11 12:43:25