2015-10-21 3 views
-5

Я начинаю в C++ в среде Eclipse. Не могли бы вы объяснить, что не так с этим кодом.Код в .cpp файле

#include "Shapes.h" 

    Shapes::Shapes(float l, float w) 
    { 
      length = l; 
      width = w; 


    float calculateArea() 
       { 
       float area = length * width; 
       return calculateArea; 
       } 
    } 

ответ

9

вещи неправильно с кодом:

  • Вы не использующие area переменную в любом случае.
  • Один из ваших } находится не в том месте.
  • Ваш calculateArea, вероятно, является членом функции Shapes и должен содержать по умолчанию Shapes::.
  • Вы не используете список инициализаторов членов.
  • Ваш отступ не соответствует действительности.
+0

Просто, чтобы победить этот момент до смерти, [список инициализаторов членов] (http://en.cppreference.com/w/cpp/language/initializer_list). Чрезвычайно полезный и часто более эффективный. – user4581301

7

Вы забыли добавить область класса в реализацию calculatateArea. Ваш код каст должен выглядеть

Shapes::Shapes(float l, float w) 
{ 
    length = l; 
    width = w; 
} 

float Shapes::calculateArea() 
{ 
    float area = length * width; 
    return area; 
} 
1

Это как ваш код должен быть:

#include "Shapes.h" 

    Shapes::Shape(float l, float w) : length(l), width(w) { } 
    float Shape::calculateArea() 
    { 
     return this->length * this->width; 
    } 

Я изменил свой конструктор использовать синтаксис конструктора. Это быстрее, чем задание, которое вы делали раньше.

Вы должны прочитать эту http://www.cplusplus.com/doc/tutorial/classes/

Он даже имеет точно такой же пример, как вы делаете.

+0

Большое спасибо. Это отличное место для поиска решения. – adnan

Смежные вопросы