我试图将一些数据成员(纸张,金属,塑料)从基类显示到派生类,但是显示的是垃圾值。我尝试在派生类中声明Material obj然后使用像obj.paper / obj.metal这样的对象来调用它们,但它不起作用。如何纠正这个?
#include <iostream>
using namespace std;
class Material
{
public:
float paper, metal, plastic;
public:
void set_data()
{
cout<<"\t\tPaper : ";
cin>>paper;
cout<<"\t\tMetal : ";
cin>>metal;
cout<<"\t\tPlastics : ";
cin>>plastic;
}
};
class Contributor : public Material
{
public :
string name, cname;
public:
void display(string x, string y)
{
name=x; cname=y;
cout<<"\t"<<x<<"\t"<<y<<"\t"<<paper<<"\t"<<metal<<"\t"<<plastic<<"\t"<<endl;
}
};
int main()
{
Material A;
Contributor B;
string name, cname;
cout<<"Enter name : ";
getline(cin, name);
cout<<"Enter company name : ";
getline(cin, cname);
A.set_data();
B.display(name, cname);
return 0;
}
答案 0 :(得分:0)
试试这个:
int main()
{
Contributor B;
string name, cname;
cout<<"Enter name : ";
getline(cin, name);
cout<<"Enter company name : ";
getline(cin, cname);
B.set_data();
B.display(name, cname);
return 0;
}
您需要阅读一些C ++书籍并了解继承是什么以及为什么要这样做。当你继承一个类(我们称之为基类)时,它包含在使用它的类中(我们称之为派生类)。
因此,当您为Contributor创建材质对象和另一个对象时,这些是独立的,但从我看到的情况来看,您希望它们包含在一个对象中。