我大约两周时间学习c ++并决定开始一个足球模拟游戏。我创建了一个名为player的类,从那时起我就遇到了编译错误。但是,即使我在课堂上发表评论,我仍然会收到错误:
1> football1.obj:错误LNK2019:未解析的外部符号“public:__thiscall player :: player(void)”(?? 0player @@ QAE @ XZ)在函数_wmain中引用
以下是代码:
// football.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <Wincon.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
class player{
private:
static const int quarterbackspeed=10;
public:
player();
int ret(){return quarterbackspeed;}
};
int _tmain(int argc, _TCHAR* argv[])
{
//maximize console window
HWND hWnd = GetConsoleWindow();
ShowWindow(hWnd,SW_SHOWMAXIMIZED);
//DECLARE FOOTBALL FIELD
char field[27][57];
//declare sidelines x=0,x=51,y=0,y=121
int times=0;
for(int declarex=0;times<2;declarex=26){
for(int declarey=0;declarey<57;declarey++){
field[declarex][declarey]='x';}times++;}
times=0;
for(int declarey=0;times<2;declarey=56){
for(int declarex=1;declarex<26;declarex++){
field[declarex][declarey]='x';}times++;}
//declare north endzone
for(int declarey=1;declarey<3;declarey++){
for(int declarex=1;declarex<26;declarex++){
field[declarex][declarey]='*';}}
//declare south endzone
for(int declarey=54;declarey<56;declarey++){
for(int declarex=1;declarex<26;declarex++){
field[declarex][declarey]='*';}}
//declare playing field
for(int declarex=1;declarex<26;declarex++){
for(int declarey=3;declarey<54;declarey++){
field[declarex][declarey]=' ';}}
//DECLARE PLAYERS
player manning;
cout<<manning.ret();
//display field
for (int declarey=0;declarey<57;declarey++){
cout<<endl;
for (int declarex=0;declarex<27;declarex++){
cout<<field[declarex][declarey];}}
system("PAUSE");
return 0;
}
答案 0 :(得分:2)
您已为player
类声明了构造函数,但未提供任何正文。为班级提供一个机构,并确定错误。
e.g。在课堂内
player() {}
或在课外:
player::player() {}
答案 1 :(得分:2)
这样的错误会让你在小件上发展。你试图一次做太多,避开用户界面并努力让你的玩家类首先工作;你以后会感谢我。
答案 2 :(得分:1)
为player
构造函数提供类似
player()
{
}
答案 3 :(得分:0)
您必须实现player
的构造函数。试试player() { }
而不是当前的player();