你好我是在我的程序中使用頭文件和OPP的新手段,我想知道爲什麼Visual Studio 2010會說我的代碼中有錯誤。該代碼可以編譯和運行根據需要,但也有下的所有對象訪問C++中的.h文件中的類
的紅線這裏是頭文件
//functions.h
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <string>
using namespace std;
class vehicle
{
public:
int hp;
int ammo;
void displayHP();
void displayAmmo();
void displayName();
string vesselName;
void setName(string);
void moveUP(int& y);
void moveDown(int& y);
void moveLeft(int &x);
void moveRight(int &x);
private:
};
//implementation section
void vehicle::displayHP(){cout<<hp<<endl;}
void vehicle::displayAmmo(){cout<<ammo<<endl;}
void vehicle::setName(string name){vesselName=name;}
void vehicle::displayName(){cout<<vesselName<<endl;}
void vehicle::moveUP(int& y)
{
y=y-1;//moves boat up
system("cls");
}
void vehicle::moveDown(int& y)
{
y=y+1;//moves boat down
system("cls");
}
void vehicle::moveLeft(int &x)
{
x=x-1;// moves the boat left
system("cls");
}
void vehicle::moveRight(int &x)
{
x=x+1;//moves boat right
system("cls");
}
void moveBoat(int &x,int& y, int a,int b,int s,int turn)
{
這裏是包含船運動的頭文件。該程序編譯細而設計的,但我很困惑,爲什麼Visual Studio是聲稱有這麼多的錯誤,我添加的行評價,其中在boat.h文件
//boat.h
#include "stdafx.h"
#include <iostream>
#include <ctime>
#include <string>
#include "functions.h"
using namespace std;
void moveBoat(int &x,int& y, int,int,int,int);
void youScrewedUp(int &x,int& y, int,int,int,int);
int movement=0;
vehicle destroyer;
destroyer.hp=500;//<==== getting a red line under the word destroyer error says "this deceleration has no storage class or type specifier"
destroyer.ammo=500;//<==== getting a red line under the word destroyer error says "this deceleration has no storage class or type specifier"
displayArray(x,y,a,b,s);//<===="this deceleration has no storage class or type specifer"
destroyer.setName("USS YAY I LEARNED CLASSES");//<===="this deceleration has no storage class or type specifer"
destroyer.displayName();//<===="this deceleration has no storage class or type specifer"
destroyer.displayHP();//<===="this deceleration has no storage class or type specifer"
cout<<"Boat Location X "<<x<<" Y "<<y<<endl;
if(s==1)
{
cout<<"ENEMY SHIP SIGHTED"<<endl;//<===="this deceleration has no storage class or type specifer"
}
cout<<"1.move left"<<endl;//<===="this deceleration has no storage class or type specifer"
cout<<"2.move right"<<endl;//<===="this deceleration has no storage class or type specifer"
cout<<"3.move up"<<endl;//<===="this deceleration has no storage class or type specifer"
cout<<"4.move down"<<endl;//<===="this deceleration has no storage class or type specifer"
cin>>movement;<===="this deceleration has no storage class or type specifer"
switch(movement)//<==expected a deceleration
{
case 1:
if(x>0)//does not allow boat to leave grid
{
destroyer.moveLeft(x);
}
else
{
youScrewedUp(x,y,turn,a,b,s);// function that repeats the movement function and displays a message
}
break;
case 2:
if(x<9)//boundary
{
destroyer.moveRight(x);
}
else
{
youScrewedUp(x,y,turn,a,b,s);
}
break;
case 3:
if(y>0)//boundary
{
destroyer.moveUP(y);
}
else
{
youScrewedUp(x,y,turn,a,b,s);
}
break;
case 4:
if(y<9)//boundary
{
destroyer.moveDown(y);
}
else
{
youScrewedUp(x,y,turn,a,b,s);
}
break;
}
turn++;//adds one to the turn counter to cycle to the enemies turn
}
void youScrewedUp(int &x, int &y,int turn, int a, int b,int s)// must pass the x y values by refferance
{
cout<<"where are you going your leaving the battlefield"<<endl;
cout<<"please make another selection"<<endl;
system("pause");
system("cls");
moveBoat(x,y,turn,a,b,s);
}
這裏的錯誤是我的主要工作()
// arrayTest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "array.h"
#include "boat.h"
#include "enemy.h"
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
int turn=1;// turn counter cycles between 1 and 2 during player and enemy turns
int x=7;//x coordinate for destroyer
int y=6;//y coordinate for destroyer
int a=3;//x coordinate for sub
int b=4;//y coordinate for sub
int s=0;//toggle for submerged or not chose not to use a bool because I used a random number generator to allow a 25% chance opposed to a 50% chance
srand (time(NULL));
do{
moveBoat(x,y,turn,a,b,s);//function that moves the boat
moveEnemy(a,b,turn,x,y,s);//function to move the enemy
}while(turn<3);// this is temporary will be replaced when a hp and weapons system is completed
system("pause");
return 0;
}
你需要把你的代碼'主()' – WileTheCoyot
你說MSVC內接受此代碼? –
你應該閱讀一本關於C++的書。因爲你所做的一切都不好。可能是[那些]之一我只是張貼我的main()在原始帖子的底部,我相信(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – Rosme