Выдает ошибку, когда я создаю объект типа прямоугольника, и говорит неопределенную ссылку. Пожалуйста, разрешите. Возможно, я ошибаюсь, поскольку моя концепция в виртуальных функциях довольно расплывчатая
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;
class shape{
protected:
string type;
float width;
float height;
public:
shape(){
type = "shape";
width = 0;
height = 0;
}
string getType(){
return type;
}
float getWidth(){
return width;
}
float getHeight(){
return height;
}
void setType(string t){
type = t;
}
void setWidth(float w){
width = w;
}
void setHeight(float h){
height = h;
}
virtual float area() = 0;
virtual void display(){
cout<<"Type : "<<type;
cout<<"Width :"<<width;
cout<<"Height :"<<height;
}
};
class rectangle:public shape{
public:
rectangle();
void display();
float area(){
int A;
A = width*height;
return A;
}
};
int main(){
rectangle rec;
rec.setHeight(4);
rec.setWidth(5);
rec.display();
}
Ошибка, которую она дает:
04:36:04 **** Incremental Build of configuration Debug for project Q1 ****
make all 'Файл сборки: ../src/Q1.cpp' 'Вызов: кросс-компилятор G ++' g ++ -O0 -g3 -Wall - c -fmessage-length = 0 -MMD -MP -MF "src / Q1 .d "-MT" src / Q1.o "-o" src / Q1.o "
" ../src/Q1.cpp "'Завершено строительство: ../src/Q1.cpp '' '' Построение цели: Q1 '' Вызов: перекрестный компоновщик G ++ 'g ++ -o "Q1" ./src/Q1.o
./src/Q1.o: В функции main':
F:\Semester 2\OOP\Theory\Assignment5- Composition and Inheritance\19I-2167<br>
D\Q1\Debug/../src/Q1.cpp:120: undefined reference to
rectangle :: rectangle ( ) '
F: \ Semester 2 \ OOP \ Theory \ Assignment5- Состав и наследование \ 19I-2167
D \ Q1 \ Debug /../ src / Q1. cpp: 123:
undefined ссылка на rectangle::display()'
./src/Q1.o:Q1.cpp:(.rdata$.refptr._ZTV9rectangle[.refptr._ZTV9rectangle]+0x0): undefined reference to
vtable для прямоугольника collect2.exe: ошибка: ld вернул 1 состояние завершения make: *** [makefile: 47: Q1] Ошибка 1 «make all» завершена с кодом выхода 2. Сборка может быть неполной.
04:36:06 Build Failed. 3 errors, 0 warnings. (took 2s.243ms)