为什么我在输出中获取地址?相反,我应该得到输出长度=(用户输入的值),宽度=(用户输入的值)。 正如在程序主体得到输入R1.getdata()
之后,ptr->result()
应该显示Rectangle类的结果。通过指针访问成员函数
#include <iostream>
using namespace std;
class Rectangle {
protected:
float length;
float width;
public:
void getdata() {
cout << "Enter length and width= ";
cin >> length >> width;
}
void result() {
cout << "Length = " << length << "\nWidth = " << width << endl;
}
};
class Area : public Rectangle {
private:
float area;
public:
void calc_area() { area = length * width; }
void result() { cout << "Area = " << area << endl; }
};
class Perimeter : public Rectangle {
private:
float perimeter;
public:
void calc_peri() { perimeter = 2 * (length + width); }
void result() { cout << "Perimeter = " << perimeter << endl; }
};
void main() {
Rectangle R1;
Area A1;
Perimeter P1;
Rectangle *ptr;
R1.getdata();
ptr = &A1;
ptr->result();
}
请不要表现出你的输出(以及构建命令),和你在哪里“得到的地址输出”。你的意思是你在输出中得到了*区*吗? –
你的意思是让'result()'成为'virtual'函数吗? –
你在不同的对象上调用'getdata'和'result'。 – interjay