所以我必须在c ++中实现几个形状以用于作业。我试图让每个形状都有自己的类和头文件,并使其继承形状类,但它似乎不起作用。
我不断收到undefined reference to
错误,当我尝试在.cpp文件中使用它们时,应该继承的变量的颜色与其他颜色不同。
据我了解,当一个类继承另一个类时,它将获得其所有公共和受保护的变量和函数,因此我想知道这里出了什么问题。
我将Atom用于编辑器和gpp-compiler软件包进行编译
shape.h
#ifndef SHAPE_H
#define SHAPE_H
class Shape{
protected:
// virtual void create();
// virtual void erase ();
// virtual void translate();
int x;
int y;
char* fill;
};
#endif
myRectangle.h
#ifndef RECTANGLE_H
#define RECTANGLE_H
#include "shape.h"
class myRectangle: public Shape{
public:
myRectangle(int x,int y,int wt,int ht,const char* fill);
//void create();
private:
int width;
int height;
};
#endif
myRectangle.cpp
#include <cstring>
#include "myRectangle.h"
myRectangle::myRectangle(int x,int y,int wt,int ht,const char* fill){
this->x=x;
this->y=y;
width=wt;
height=ht;
strcpy(this->fill,fill);
}
当我尝试在main.cpp中执行此操作时:
myRectangle r1(0,0,10,10,"orange");
我收到错误消息:
未定义对`myRectangle :: myRectangle(int,int,int,int,char const *)'的引用collect2.exe:错误:ld返回1退出状态