2016-06-02 5 views
-1

Teil AVererbungsklassen

Ich versuche, um die Funktion zu verwenden, die ich in meiner Basisklasse „SHAPE“ mit der abgeleiteten Klasse „Rechteck“ habe ein größeres Rechteck in meiner Klasse „BIGRECTANGLE“ zu erstellen. Ich möchte meine Seiten in der Klasse transformieren lassen und nicht hauptsächlich. Was soll ich tun? Vielen Dank!

#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; 
} 

Dies sind die Fehler, die ich habe: - 45:14: Fehler: expected unqualifizierte-ID vor '' Token - 46:14: Fehler: erwartete unqualifizierte ID vor '.' Token - 47: 5: Fehler: 'Bereich' nennt keinen Typ

+0

1. [std-Namespace ...] (http://stackoverflow.com/questions/1452721/why-is. -namensraum-std-in-c-betrachtet-schlechte-Praxis). 2.Ändern Sie 'public Rectangle, public Shape' zu ​​'public Rectangle' - Rectangle ist bereits eine Form –

+0

Sie haben den Code entfernt, so dass mein Kommentar keinen Sinn ergibt? –

+0

@EdHeal, aber das wird mich immer noch verlassen mit: 45:10: error: erwartet unqualifiziert-id vor '.' Token 46:10: Fehler: erwartete unqualifizierte ID vor '.' Token 47: 1: Fehler: 'Bereich' nennt keinen Typ – FL93

Antwort

0

Dies ist keine Antwort - also entschuldige ich.

Ich kann nicht das dies in einem Kommentar zu tun - so verzeihen Sie mir

#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

Perfekte Nein ist klar! – FL93