C ++头文件中的继承

时间:2019-05-16 14:36:02

标签: c++ linker

所以我必须在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退出状态

0 个答案:

没有答案