2016-06-02 3 views
-1

Часть Анаследования классов

Я пытаюсь использовать функцию, которая у меня есть в моем базовом классе «SHAPE» с производным классом «Прямоугольник», чтобы создать больший прямоугольник в моем классе «BIGRECTANGLE». Я хочу, чтобы мои стороны трансформировались внутри класса, а не в основном, что мне делать? Благодаря!

#include <iostream> 

using namespace std; 

// Base class Shape 
class Shape 
{ 
public: 

    void ResizeW(int w) 
    { 
     width = w; 
    } 
    void ResizeH(int h) 
    { 
     height = h; 
    } 
protected: 

    int width; 
    int height; 
}; 

// Primitive Shape 

class Rectangle: public Shape 
{ 
public: 

    int width = 2; 
    int height = 1; 
    int getArea() 
    { 
     return (width * height); 
    } 
}; 

// Derived class 

class BIGRectangle: public Rectangle 
{ 
public: 

    int area; 
    Rectangle.ResizeW(8); 
    Rectangle.ResizeH(4); 
    area = Rectangle.getArea(); 
}; 

int main(void) 
{ 
    return 0; 
} 

Эти ошибки, которые у меня есть: - 45:14: ошибка: ожидается, неквалифицированный-идентификатор, прежде чем ". токен - 46:14: ошибка: ожидаемый неквалифицированный идентификатор до '.' токен - 47: 5: ошибка: «площадь» не называет тип

+0

1. [с использованием зЬх имен ...] (http://stackoverflow.com/questions/1452721/why-is. -при-имена-станд-в-с-рассмотренной-плохой-практика). 2.Изменить 'public Rectangle, public Shape' to' public Rectangle' - Rectangle уже является формой –

+0

Вы удалили код, чтобы мой комментарий не имел никакого смысла? –

+0

@EdHeal, но это все равно оставит меня с: 45:10: error: ожидается неквалифицированный идентификатор до '.' токен 46:10: ошибка: ожидаемый unqualified-id перед '.' token 47: 1: error: 'area' не называет тип – FL93

ответ

0

Это не ответ, поэтому я извиняюсь.

Я не могу это сделать это в комментарии - да простит меня

#include <iostream> 

using namespace std; // This is a bad idea 

// Base class Shape 
class Shape // THIS IS THE BASE CLASS - It has height as a member 
{ 
public: 

    void ResizeW(int w) 
    { 
     width = w; 
    } 
    void ResizeH(int h) 
    { 
     height = h; 
    } 
protected: 

    int width; 
    int height; 
}; 

// Primitive Shape 

class Rectangle: public Shape // This is derived class, it inherits height 
{ 
public: 

    int width = 2; 
    int height = 1; // And here it is! 

    int getArea() 
    { 
     return (width * height); 
    } 
}; 

// Derived class 

class BIGRectangle: public Rectangle 
{ 
public: 

    int area; 
    Rectangle.ResizeW(8); 
    Rectangle.ResizeH(4); 
    area = Rectangle.getArea(); // This is not valid C++ code 
}; 

int main(void) 
{ 
    return 0; 
} 
+0

Perfect no is clear! – FL93

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