设计一个dog类
题目描述
设计一个Dog类,包含name、age、sex和weight等属性以及对这些属性操作的方法。实现
并测试这个类。
根据类的封装性要求,把name、age、sex和weight声明为私有的数据成员,编写公有成员
函数setdata()对数据进行初始化,GetName()、GetAge()、GetSex()和GetWeight()获取相应属
性。初始化数据由用户输入。
输入
Dog类对象的初始化数据
输出
根据Dog类对象的初始化数据输出一句话,请严格按照格式输出,句末有点号。
答案
#include <iostream>
#include <string>
class Dog {
private:
std::string name;
int age;
char sex;
double weight;
public:
// 构造函数
Dog() : age(0), weight(0.0) {}
// 设置数据成员的方法
void setData(const std::string& n, int a, char s, double w) {
name = n;
age = a;
sex = s;
weight = w;
}
// 获取name属性的方法
std::string GetName() const {
return name;
}
// 获取age属性的方法
int GetAge() const {
return age;
}
// 获取sex属性的方法
char GetSex() const {
return sex;
}
// 获取weight属性的方法
double GetWeight() const {
return weight;
}
};
int main() {
Dog myDog;
std::string dogName;
int dogAge;
char dogSex;
double dogWeight;
// 从用户那里获取狗的信息
std::cout << "Enter the dog's name: ";
std::cin >> dogName;
std::cout << "Enter the dog's age: ";
std::cin >> dogAge;
std::cout << "Enter the dog's sex ('M' for male, 'F' for female): ";
std::cin >> dogSex;
std::cout << "Enter the dog's weight: ";
std::cin >> dogWeight;
// 使用setData方法设置狗的信息
myDog.setData(dogName, dogAge, dogSex, dogWeight);
// 打印狗的信息
std::cout << "Name: " << myDog.GetName() << std::endl;
std::cout << "Age: " << myDog.GetAge() << std::endl;
std::cout << "Sex: " << (myDog.GetSex() == 'M' ? "Male" : "Female") << std::endl;
std::cout << "Weight: " << myDog.GetWeight() << " kg" << std::endl;
return 0;
}