2017-03-22 2 views
-5

저는 C++ 클래스 용 자동차 클래스 프로그램을 작성하고 있으며 비주얼 스튜디오와 함께 작업 할 수있는 유일한 부분은 "문자열 및 확인"과 관련이 있습니다. 나는 그것들을 주석 처리했고 프로그램은 정상적으로 작동한다. 우리 선생님은 우리에게 3 페이지로 나눠 줄 것을 부탁했습니다. 제목에 게시 된 오류는 MISSING TYPE SPECIFIER입니다. "네임 스페이스 표준을 사용하고있다"는 것이 전부였다. car.h 파일에 있습니다.오류 : 누락 된 형식 지정자

도움 주셔서 감사합니다. 여기

#include "stdafx.h" 
    #include <iostream> 
    #include <string> 
    #include <iomanip> 
    #include "Car.h" 
    using namespace std; 


    int main() 
    { 
     // Declare car object 
     Car myCar; 
     int speed = 0, year; 
     string make; 


     cout << "This program will help you with your Car!" << endl; //   intro message 

     cout << "Please enter the Year" << endl; // store year 
     cin >> year; 

     cout << "Please enter the Make of the car" << endl; // store make 
     cin >> make; 


     // call member functions to set car year and make. 
     myCar.setYear(2013); 
     myCar.setMake("Mustang GT"); 

     // call member functions to get car year and make 
     cout << "Your car's current year is: " << myCar.getYear() << endl; 
     cout << "Your car's current make is: " << myCar.getMake; 
     cout << "Your car's current speed is : " << speed << " mph" << endl; 





     return 0; 
    } 

#pragma once 
#ifndef CAR_H 
#define CAR_H 



// Car class declaration 
class Car 
{ 
    private: 
     string make; 
     int year; 
     int speed; 

    public: 
     int myCar(int year, string make, int speed); 

     int setYear(int carYear); 

     int setSpeed(int carSpeed); 

     string setMake(string carMake); 

     int getYear(); 

     int getSpeed(); 

     string getMake(); 

     void accelerate(); 

     void brake(); 


}; 

Car.h

입니다 그리고 여기 Car.cpp

당신의 setMake 기능에
#include "stdafx.h" 
#include <iostream> 
#include <string> 
#include <iomanip> 
#include "Car.h" 
using namespace std; 


//*** 
//myCar 
//** 
int Car::myCar(int year, string make, int speed) 
{ 
    int setYear(int year); 
    string setMake(string make); 
    return year, make, speed; 
} 


//********** 
// setYear 
//********* 
int Car::setYear(int carYear) 
{ 
    year = carYear; 
    return carYear; 

} 


//************ 
// setMake 
//************ 
string Car::setMake(string carMake) 
{ 

    make = carMake; 


} 
//***  

//*** 
//setSpeed 
//*** 
int Car::setSpeed(int carSpeed) 
{ 
    speed = carSpeed; 
    return carSpeed; 


} 
//*** 

//*** 
//getYear 
//*** 
int Car::getYear() 
{ 

    return year; 

} 
//*** 

//*** 
//getMake 
//*** 
string Car::getMake() 
{ 
    return make; 

} 


//*** 
//getSpeed 
//*** 
int Car::getSpeed() 
{ 

    return speed; 

} 
//*** 

//*** 
// Accelerate 
//*** 
void Car::accelerate() 
{ 
    int speed = 0; 
    speed += 5; 


} 
//*** 

//*** 
// Brake 
//*** 
void Car::brake() 
{ 
    int speed = 0; 
    speed -= 5; 

} 
//*** 
+3

중요한 질문이 없습니다. 그것은 실제 질문이 될 것입니다. "제 숙제가 컴파일되지 않습니다."라는 말은 컴파일 오류를 표시하지 않고도 의문이 아닙니다. –

+0

숙제에 대해 질문하는 데 특별히 잘못된 것은 없지만 질문을하십시오. 지금까지 시도한 것을 보여주고, 당신을 위해 일하는 /하지 않는 것에 대해 확장하십시오. 일반적으로 "내 코드가 작동하지 않습니다"는 응답을 얻는 좋은 방법이 아닙니다. 보다 구체적으로, 당신이 시도하고 컴파일 할 때 어떤 오류가 발생하며, 시도하고 수정하기 위해 어떤 단계를 밟았습니까? – user2366842

+0

문자열을 반환하도록 setMake를 정의했지만 반환 값을 사용하지 않고 아무 것도 반환하지 않습니다. – stark

답변

0

이 문자열로 선언거야하지만 어떤 값도 반환하지 않는다. 나는 당신이 합격 한 가치를 되 돌리는 것을 잊었다 고 믿습니다.

//************ 
// setMake 
//************ 
string Car::setMake(string carMake) 
{ 

    make = carMake; 
    return make; // This line should do the trick 

} 

나는 다음 번 가능성이 당신에게 줄 번호와 문제가 있었다 함수도 이름을 준 이후, 어떤 컴파일러 출력을 자세히 살펴 복용을 제안 할.

사이드 노트 : 일반적으로 설정된 함수는 일반적으로 아무 것도 반환 할 필요가 없으므로 void로 선언됩니다.

+0

감사합니다. 매우 도움이되었습니다. 밖으로 돌리면, 내 선생님은 어떤 이유로 든 시각 스튜디오를 알지 못했고, 네이밍 네임 스페이스를 결정했다. car.h 파일에서 누락되었습니다. 선생님은 주 드라이브에 연결되어 있기 때문에 필요 없다고 말씀하셨습니다. 그러나 Type 지정자 오류의 원인은 무엇입니까. –

관련 문제