题目:
设计一个 Person类,Person类具有name和 age属性,提供初始化函数(Init),并提供对name和 age 的读写函数(set , get),但必须确保 age的赋值在有效范围内(0-100),超出有效范围,则拒绝赋值,并提供方法输出姓名和年龄。
实现思路:
这段代码实现了一个简单的 Person 类,该类具有姓名(m_name)和年龄(m_age)属性。
1.类的定义开始于 class Person
public部分包含类的公共接口,private部分包含私有成员。提供接口进行读写。
char m_name[128]: 用于存储姓名的字符数组,最大长度为 128。
int m_age: 用于存储年龄的整数。
person_Init 函数: 接受两个参数,`int age` 和 `const char* name`,用于初始化对象。首先检查年龄是否在有效范围(0到100之间),如果是,则设置年龄和姓名,否则将年龄设为默认值并输出错误消息。
show_person函数:输出对象的姓名和年龄。
get_age函数:返回对象的年龄。
set_age函数:接受一个参数 age,用于设置对象的年龄。在设置之前,检查年龄是否在有效范围内,如果是则设置,否则输出错误消息。
get_name 函数:返回对象的姓名。
set_name 函数:接受一个参数 name,用于设置对象的姓名。
最后main函数调用了test1函数,用于测试功能。
总体来说, Person类实现了对姓名和年龄的初始化、读取和修改,并在必要时进行了检查。
代码:
#include <iostream>
#include <cstring>
using namespace std;
class Person {
public:
void person_Init(int age, const char* name) {
// 检查年龄是否在有效范围内,在有效范围内,设置年龄和姓名如果年龄无效,设为默认值,并输出错误信息
if (age >= 0 && age <= 100) {
m_age = age;
strcpy(m_name, name);
}
else {
m_age = 0;
strcpy(m_name, "无显示");
cout << "错误警告: 年龄值无效,age与name都设为默认值." << endl;
}
}
// show函数显示姓名和年龄
void show_person() {
cout << "Name: " << m_name << ", Age: " << m_age << endl;
}
// 获取年龄
int get_age() {
return m_age;
}
// 设置年龄,确保在有效范围内
void set_age(int age) {
if (age >= 0 && age <= 100) {
m_age = age;
}
else {
cout << "Error: 错误年龄值." << endl;
}
}
// 获取姓名
const char* get_name() {
return m_name;
}
// 设置姓名
void set_name(const char* name) {
strcpy(m_name, name);
}
private:
char m_name[128]; // 姓名,使用字符数组存储
int m_age; // 年龄
};
void test1() {
Person p1;
p1.person_Init(20, "姜楠911");
p1.show_person();
}
int main()//调用test1函数测试
{
test1();
return 0;
}