我有以下程序:C++多態性接入來源於基類類字段
#include <iostream>
class Base {};
class Deriv : public Base
{
public:
int data;
Deriv(int data): data(data) {}
};
int main()
{
Base *t = new Deriv(2);
std::cout << t->data << std::endl;
}
當我編譯它,我得到的錯誤:
x.cpp: In function ‘int main()’:
x.cpp:15:21: error: ‘class Base’ has no member named ‘data’
我如何才能訪問到數據字段(注意,我不想使用Deriv * t = new Deriv(2))?
您必須首先將其轉換爲指定的類型。 – atoMerz
@AtoMerZ,是唯一的方法嗎? – kaspersky
取決於您的要求。你也可以做@ tp1所說的。基地無法瞭解數據。 **你必須以某種方式告訴它。 – atoMerz