láma kérdés c++
ha az osztályokat amiket használok külön cpp fájban implementálom, akkor a g++ -nak hogyan tudom megmondani, hogy a 2.cpp -ben lévő öröklődés az 1.cpp fájlban található osztályra hivatkozik?
pl:
1.cpp
class CPolygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b;}
};
2.cpp
#include <iostream>
using namespace std;
class CRectangle: public CPolygon {
public:
int area ()
{ return (width * height); }
};
class CTriangle: public CPolygon {
public:
int area ()
{ return (width * height / 2); }
};
int main () {
CRectangle rect;
CTriangle trgl;
rect.set_values (4,5);
trgl.set_values (4,5);
cout << rect.area() << endl;
cout << trgl.area() << endl;
return 0;
}
szóval hogyan tudnám ezt lefordítani, mivel a g++ -o teszt 1.cpp 2.cpp fordítási hibát ad:
2.cpp:4: error: expected class-name before '{' token
2.cpp: In member function 'int CRectangle::area()':
2.cpp:7: error: 'width' was not declared in this scope
2.cpp:7: error: 'height' was not declared in this scope
2.cpp: At global scope:
2.cpp:10: error: expected class-name before '{' token
2.cpp: In member function 'int CTriangle::area()':
2.cpp:13: error: 'width' was not declared in this scope
2.cpp:13: error: 'height' was not declared in this scope
2.cpp: In function 'int main()':
2.cpp:19: error: 'class CRectangle' has no member named 'set_values'
2.cpp:20: error: 'class CTriangle' has no member named 'set_values'
Ha egy fájlban van minden akkor simán lefordul.
- Tovább (láma kérdés c++)
- 1138 megtekintés