2014-12-11 5 views
0

안녕하십니까, 오늘 코드 작성에 실패했습니다. 사각형 원과 직사각형 영역을 계산하는 프로그램을 만들었습니다. 모양의 기본 클래스. public area() : double, getName() : string 및 getDimensions : 보호 된 높이 및 너비가있는 도형에서 파생 된 사각형과 공용 사각형 (h : double, w : double), 그리고 공의 사각형 (h : double)이있는 직사각형에서 파생 된 사각형과 마지막으로 개인 반경이있는 모양에서 파생 된 원과 공용 서클 (r : double)이 차례로 표시됩니다. 지금까지 내 shape.cpp 파일에서 내 코드에서 멀리까지 얻었습니다 : shape.cpp : 10 : error : 암시 적으로 선언 된 'constexpr shape :: shape()'의 정의 shape : : 모양() 여기 암시 적으로 선언 된 C++ 컴파일러 오류 정의

내 전체 코드에 대한 링크입니다 : https://gist.github.com/anonymous/0eedd7719a34655488fb

shape.cpp 파일 :

당신의 도움이 당신은 shape() CONST를 추가 할 필요가
+0

'shape' 생성자를'shape' 클래스 정의 안에 선언하지 않았습니다. – user657267

+0

전체 rectangle.cpp가 헤더를 다시 선언하고 있습니까? – AlexanderVX

+0

두 가지 모두 감사드립니다. 권장 변경 사항을 적용했으며 shape.cpp의 라인 10에서 shape : shape의 재정의가 발생했습니다. – ana

답변

3

을 감사
#include "shape.h" 
#include "circle.h" 
#include "rectangle.h" 
#include "square.h" 
#include <QDebug> 
#include <QString> 
#include <iostream> 
using namespace std; 

shape::shape() 
{ 

}; 

이 같은 클래스 선언에 ructor :

#ifndef SHAPE_H 
#define SHAPE_H 
#include <QString> 
#include <QDebug> 

using namespace std; 

class shape 
{ 
public: 

    shape(); 
    virtual double area()=0; 

    virtual QString getName()=0; 
    virtual QString getDimensions()=0; 

    virtual~shape(){} 

}; 
#endif 

당신은 다음과 같이 shape.cpp의 정의를 만들 수 있습니다

shape::shape() 
{ 

} 

을 마지막에 세미콜론없이.

+0

좋아요. 위와 같이 세미콜론을 제거하고 모양을 수정했습니다. 이제 다음과 같이 읽습니다. – ana

관련 문제