Hello I am new to using header files and OPP in my programs and I am wondering why visual studio 2010 is stating that there are errors in my code. The code compiles and runs as desired but there are red lines under all of the objects
here is the header file
//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)
{
here is the header file that contains the boats movements. The program compiles fine and works as designed but I was confused why visual studio is claiming there are so many errors I added line comments to where the errors in the boat.h file
//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);
}
Here is my main()
// 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;
}