gpt4 book ai didi

c++ - 类型类的C++对象仅访问一种打印功能

转载 作者:行者123 更新时间:2023-12-02 10:03:13 27 4
gpt4 key购买 nike

在该程序中,有两个名为display的函数,每个函数处理不同类型的数据,这些数据被对象调用为主。

#include<string> 
#include<iostream>
#include<vector>
using namespace std;


class Hat {
private:
string type;
char size;
public:
void display();
Hat(string type, char size);

};

Hat::Hat(std::string _type, char _size):
type(_type),
size(_size)
{

}

void Hat::display()
{
cout << "Hat type : " << size << endl; //arrows wrong way
cout << "Hat size : " << type << endl; //missing ending cout <<
}

class Person {
public:
string name;
unsigned int idNum;
Hat myHat;
void display();
Person(string,char,string,int);


};

Person::Person(string _name, char hat_size, string hat_type, int _idNum):

name(_name), idNum(_idNum),
myHat(hat_type,hat_size)
{

}

void Person::display()
{
cout << "Given name : " << name << endl;
cout << "Id. number : " << idNum << endl;

}

int main()
{

Person personA("Alice",'M',"Trilbee",12321);
Person personB("Bob",'S',"Ferret",2324);
personA.display();
personB.display();

return 0;
}

该计划的预期结果将是
Given name : Alice
Id. number : 12321
Hat type : Beret
Hat size : M
Given name : Bob
Id. number : 2324
Hat type : S
Hat size : Trilby

但是输出是
Given name : Alice
Id. number : 12321
Given name : Bob
Id. number : 2324

在main中声明的用于访问显示功能的对象仅访问在person类而不是hat类中发现的对象,并且不确定为什么。

最佳答案

您需要在display中显式调用Hat类(myHat)的Person::display()成员函数。试试这个:

void Person::display()
{
cout << "Given name : " << name << endl;
cout << "Id. number : " << idNum << endl;
myHat.display();
}

在此之后,输出将是:
Given name : Alice
Id. number : 12321
Hat type : M
Hat size : Trilbee
Given name : Bob
Id. number : 2324
Hat type : S
Hat size : Ferret

关于c++ - 类型类的C++对象仅访问一种打印功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61519768/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com