该功能的要求如下:
“一个加法运算符,它接收对两个不可修改的 Point 对象的引用并返回一个 Point 对象,该对象包含两个对象坐标相加的结果”
我的观点.h
#ifndef _POINT_H_
#define _POINT_H_
#include "Showable.h"
#include <iostream>
using namespace std;
class Point : public Showable {
public:
int x;
int y;
Point();
Point(int a, int b);
ostream& display(ostream& os) const;
friend Point& operator+(const Point& pointA, const Point& pointB);
friend Point& operator/(const Point& pointA, int b);
};
#endif
我的功能是
Point& operator+(const Point& pointA, const Point& pointB) {
Point a;
}
我想做的是,创建一个新的 Point 对象,并添加 pointA 和 pointB 的值,然后返回新的 Point 对象,但它不允许我创建一个新对象,因为它是一个抽象类。我能做些什么?
错误是“不允许抽象类类型“点”的对象。
编辑:我的 Showable.h
#ifndef _SHOWABLE_H_
#define _SHOWABLE_H_
#include <iostream>
using namespace std;
class Showable {
public:
virtual ostream& display(ostream& os) const = 0;
virtual istream& operator>>(istream& is) const = 0;
};
#endif