【发布时间】:2019-06-21 11:12:47
【问题描述】:
继承的方法 init() 在新类中不起作用。 A、B、C、D 值保持不变,因此覆盖的 square() 方法也不起作用。
尝试将 A、B、C、D 公开,因为在互联网上的大多数示例中都存在变量。
Quadrangle 的方法按预期工作。但是“类 Quadrangle 被 IDE 下划线:“这个声明没有存储类或类型说明符”。虽然程序没有崩溃。
另外,我是否以正确的方式覆盖 square()?
#include "pch.h"
#include <iostream>
using namespace std;
struct point {
float x, y;
};
class Quadrangle
{
public:
void init() // sets coordinates for A, B, C, D
{
cout << "Input A coordinates (x, y): ";
cin >> A.x >> A.y;
cout << "Input B coordinates (x, y): ";
cin >> B.x >> B.y;
cout << "Input C coordinates (x, y): ";
cin >> C.x >> C.y;
cout << "Input D coordinates (x, y): ";
cin >> D.x >> D.y;
};
void square()
{
// square calculation
};
private:
point A, B, C, D;
};
class Rectangle : public Quadrangle
{
public:
void square()
{
// square calculation
};
private:
point A, B, C, D;
};
英语不是我的第一个,我也没有谈论编程的经验。抱歉,如果有问题。
【问题讨论】:
-
我不确定我是否理解您的问题,但我想您应该从 Rectangle 类中删除属性 A、B、C 和 D,并将 Quadrangle 类中的属性设为“受保护”
-
@StackDanny 根本没有。
标签: c++ oop inheritance overriding