ChoisAL 2016-12-27 09:34 采纳率: 0%
浏览 891

C++小白求大神帮忙在类的继承有一些问题

代码如下:
#include
using namespace std;
class Point {
protected:
int x;
int y;
double const r;
public:
Point(int px = 0, int py = 0)
: r(1.5)
{
x = px;
y = py;
}
int GetX() { return x; }
int GetY() { return y; }
void SetX(int px) { x = px; }
void SetY(int py) { x = py; }
virtual void ShowPoint() {
cout << "<" << x << "," << y << ">";
}
};
class SpacePoint :public Point {
private:
int z;
public:
SpacePoint():z(0){
}
SpacePoint(int px, int py, int pz):Point(px,py) {
z = pz;
}
int GetZ() { return z; }
void SetZ(int pz) { z = pz; }
virtual void ShowPoint() {
cout << "<" << x << "," << y << ',' << z << ">" << endl;
}
};

int main()
{
SpacePoint spt(3,4,5);
spt.ShowPoint();
Point pt;
pt=spt;
/*错误在这里,说是行错误 C2280 “Point &Point::operator =(const Point &)”: 尝试引用已删除的函数;行错误(活动) 无法引用 函数 "Point::operator=(const Point &)" (已隐式声明) -- 它是已删除的函数*/
pt.ShowPoint();
Point* p=&spt;
cout << p->GetX() << endl;
Point& rp=spt;
cout << rp.GetX() << endl;

Point*p1 = new SpacePoint(3, 4, 5);
p1->ShowPoint();
cout << endl;

p1 = &spt;
p1->ShowPoint();
cout << endl;
return 0;

}
错误如下:

  • 写回答

1条回答 默认 最新

  • YUXUYANGJIAN 2016-12-27 10:07
    关注

    SpacePoint spt(3,4,5);
    spt.ShowPoint();
    Point pt;
    pt=spt;
    不同类型的对象能直接复制吗,就算有父子关系的对象也不行啊,拷贝构造函数不支持的,除非自己重写拷贝构造函数

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘