c++ - 如何在 c++ 中使用带有另一个类对象的构造函数?
问题描述
我有一个简单的程序,其中有两个类,它们是Hat
和Person
。每个Person
都有一个string name
, aint idNum
和一个 hat 对象。每个帽子只有一个字符串hatType
和一个字符hatSize
。在主要方法中,我想简单地声明 2 个人并使用显示方法来显示信息。这是我当前的代码,请放轻松我还是C++中的OOP新手。
人员类
class Person
{
private:
string name;
unsigned int idNum;
Hat myHat;
public:
Person(string, unsigned int, Hat);
void display();
};
Person::Person(string personName, unsigned int personID)
{
name = personName;
idNum = personID;
myHat = hat;
}
void Person::display()
{
cout << "Given name : " << name << endl;
cout << "Id. number : " << idNum << endl;
hat.display();
}
帽子课
class Hat
{
private:
string hatType;
char hatSize; // S, M, L
public:
Hat(string,char);
void display();
};
Hat::Hat(string _type, char _size){
hatType = _type;
hatSize = _size;
}
void Hat::display()
{
cout << "Hat type : " << hatType << endl;
cout << "Hat size : " << hatSize << endl;
}
主要的
int main()
{
Person personA("Alice",12321, Hat("Trilbee",'M'));
Person personB("Bob",2324, Hat("Ferret",'S'));
personA.display();
personB.display();
return 0;
}
解决方案
你的 Person 类在这里:
Person::Person(string personName, unsigned int personID)
{
. ...
没有完全实现只需添加hat参数...
Person::Person(string personName, unsigned int personID, Hat hat)
{....
推荐阅读
- javascript - 如何使 React-Table React-Window 组合适合较小的包装器 div?
- kdb - 如何将转换应用于 KDB 中的组?
- javascript - VueJS 重复组件全部同时更新
- elasticsearch - 除了直方图和 date_histogram 之外,是否可以在聚合的子聚合中进行管道聚合?
- flutter - 发生 Flutter 运行时异常。_TypeError(类型'列表
' 不是类型 'String' 的子类型) - wifi - 无法在同一个 5Ghz wi-fi 网络中从手机连接到 PC,而 2.4 工作正常
- mysql - where('videos.created_at', '>', '2020.07.26 14:16:29') 不适用于左连接表 - Eloquent,Laravel
- python - 根据 pandas 中另一列中存在的条件对列执行 True/False 操作
- html - 如果 'cc-sub-header-title' 是一个 Angular 组件,那么验证它是这个模块的一部分
- php - 如何将相同的页面连接到后端的不同数据并使它们适用于各自的数据?