编写设计一个People(人)类。该类的数据成员有年龄(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,成员函数有构造函数(People)、进食(Eatt

5.编写设计一个People(人)类。该类的数据成员有年龄(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,成员函数有构造函数(People)、进食(Eatting)、运动(Sporting)、睡眠(Sleeping)、显示(Show)和显示人数(ShowNum)。其中构造函数由已知参数年龄(a)、身高(h)和体重(w)构造对象,进食函数使体重加1,运动函数使身高加1,睡眠函数使年龄、身高、体重各加1,显示函数用于显示人的年龄、身高、体重,显示人数函数为静态成员函数,用于显示人的个数。假设年龄的单位为岁,身高的单位为厘米,体重的单位为市斤,要求所有数据成员为protected访问权限,所有成员函数为public访问权限,在主函数中通过对象直接访问类的所有成员函数。


#include<iostream>

using namespace std;

class People{

protected:

int age,height,weight;

static int num;

public:

People(int a,int b,int c):height(a),weight(b),age(c){num++;}

~People(){}

friend void Eating(People a);

friend void Sporting(People a); 

friend void Sleeping(People a); 

void Show(); 

void ShowNum(); 

int getweight(){return weight;}

int getheight(){return height; }

int getage(){return age;}

int getnum(){return num;}

};

int People::num=0;

 

void Eating(People a){

a.weight=a.weight+1;

}

void Sporting(People a){

a.height=a.height+1;

}

void Sleeping(People a){

a.weight=a.weight+1;

a.height=a.height+1;

a.age=a.age+1;

}

void People::Show(){

cout<<"weight:"<<getweight()<<"\nheight:"<<getheight()<<"\nage:"<<getage()<<endl;

}

void People::ShowNum(){

cout<<"num:"<<getnum()<<endl;

}

void main(){

People b(176,55,20);

Eating(b);

Sporting(b);

Sleeping(b);

b.Show();

b.ShowNum();

}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 人的姓名、年龄身高体重;显示人数函数用于显示当前已经创建的人数。 以下是一个可能的实现: ```c++ #include <iostream> #include <string> class People { public: People(const std::string& name, int age, double height, double weight) : name_(name), age_(age), height_(height), weight_(weight) { ++count_; } void display() const { std::cout << "Name: " << name_ << std::endl; std::cout << "Age: " << age_ << std::endl; std::cout << "Height: " << height_ << std::endl; std::cout << "Weight: " << weight_ << std::endl; } static void display_count() { std::cout << "Number of people: " << count_ << std::endl; } private: std::string name_; int age_; double height_; double weight_; static int count_; }; int People::count_ = 0; int main() { People p1("Alice", 20, 1.6, 50.0); People p2("Bob", 25, 1.8, 70.0); p1.display(); p2.display(); People::display_count(); return 0; } ``` 输出: ``` Name: Alice Age: 20 Height: 1.6 Weight: 50 Name: Bob Age: 25 Height: 1.8 Weight: 70 Number of people: 2 ``` ### 回答2: 本题要求设计一个people类,该类包含以下数据成员:姓名、年龄身高体重人数,其中人数静态数据成员,表示该类对象的个数。成员函数包括构造函数、显示和显示人数构造函数可以由参数姓名、年龄身高体重构造对象,显示函数可以用来显示对象的信息,显示人数函数用来显示该类当前对象的个数。 首先,我们定义一个people类,包含姓名、年龄身高体重人数这五个数据成员,其中人数静态数据成员: ``` class people{ private: string name; //姓名 int age; //年龄 int height; //身高 int weight; //体重 static int count; //人数 public: people(string n, int a, int h, int w); //构造函数 void display(); //显示函数 static void display_count(); //显示人数函数 }; ``` 在people类中,我们定义了一个私有的静态数据成员count来表示该类对象的个数,同时也定义了一个公有的构造函数people(string n, int a, int h, int w),用于通过传入姓名、年龄身高体重参数构造对象。此外,还定义了一个显示函数display()来显示对象的信息,以及一个静态的显示人数函数display_count()来显示该类的对象个数。 接下来,我们实现这些成员函数。首先是构造函数people(string n, int a, int h, int w): ``` people::people(string n, int a, int h, int w){ name = n; age = a; height = h; weight = w; count++; } ``` 在构造函数中,我们将传入的参数n、a、h、w分别赋值给数据成员name、ageheightweight,并将count静态变量加1,表示构造了一个新的对象。 接下来是显示函数display(): ``` void people::display(){ cout << "姓名:" << name << endl; cout << "年龄:" << age << endl; cout << "身高:" << height << "cm" << endl; cout << "体重:" << weight << "kg" << endl; } ``` 在该函数中,我们使用cout语句输出该对象的所有信息,包括姓名、年龄身高体重。 最后是静态的显示人数函数display_count(): ``` void people::display_count(){ cout << "当前对象个数为:" << count << endl; } ``` 该函数中,我们只需要使用cout语句输出count静态变量的值即可。这个静态函数中不能使用对象的数据成员成员函数。 最后,我们在主函数中测试这个people类的成员函数的功能: ``` int main(){ people p1("张三", 18, 175, 65); //创建一个对象 p1.display(); //显示p1对象的信息 people::display_count(); //显示当前对象的个数 people p2("李四", 20, 180, 70); //创建一个对象 p2.display(); //显示p2对象的信息 people::display_count(); //显示当前对象的个数 return 0; } ``` 在主函数中,我们首先创建一个对象p1,并使用p1.display()函数输出p1的信息。接着调用people::display_count()函数,输出当前对象的个数。然后,我们创建一个新的对象p2,并输出p2的信息以及当前对象的个数。在程序运行之后,我们可以看到输出的信息如下: ``` 姓名:张三 年龄:18 身高:175cm 体重:65kg 当前对象个数为:1 姓名:李四 年龄:20 身高:180cm 体重:70kg 当前对象个数为:2 ``` 从输出的信息可以看出,我们成功地设计出一个people类,并实现了该类的成员函数。 ### 回答3: People类是一个能够描述人物基本信息的类,它包含了姓名、年龄身高体重人数五个数据成员。其中人数是一个静态数据成员,表示当前已经创建的People类型对象的数量。除此之外,People类还包含了构造函数和显示函数这两个成员函数,以满足各种操作需求。 构造函数是一个非常重要的函数,它能够帮助我们创建一个新的People类型对象。在本例中,构造函数通过传递四个参数(姓名、年龄身高体重)来创建新对象。这些参数用于初始化对象的姓名、年龄身高体重数据成员。这样,我们就在构造函数中初始化了People对象的全部数据成员,使得使用者不需要单独初始化对象的各项属性。 除了构造函数外,People类还包含了一个显示函数,例如show()函数。它根据当前对象的数据成员值来显示出这个人物的相关信息。通常,show()函数会将对象信息输出到控制台,使得使用者能够更直观地了解当前对象的属性。同时,为了统计当前已经创建的对象数量,我们还可以在show()函数中调用静态数据成员人数”来输出对象总数。 最后,鉴于编辑器的要求,让我们简单地描述People类的实现步骤。首先,我们使用类定义语法创建一个新类People。在类定义中,我们声明了五个数据成员和三个成员函数。然后,我们在类定义中实现了构造函数和显示函数,使得使用者能够创建新的People类型对象并查看对象信息。最后,我们在main()函数中来测试People类,用一些示例代码来演示我们如何使用这个类。这样,我们就可以发现People类非常灵活和有用,有助于我们更好地管理人物信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值