第四次作业:
声明一个Person类,包含两个私有成员变量const char * name和int age。定义getName, setName, getAge和setAge四个接口函数,分别可以对私有成员name和age进行读写;在Person类中定义一个无参构造函数,分别对name和age赋值"张三"和18;再定义一个有参构造函数,参数是const char * newName和int newAge,在函数体中分别将newName和newAge赋值给name和age。
在main函数中定义一个Person person1对象(不带参数),用cout输出person1的name和age值(通过接口函数);用setName和se tAge接口函数给person1私有成员重新赋值,再用cout输出姓名和年龄(通过接口函数);再定义一个调用带参数构造函数的对象Person person2(“新名字”,年龄),用cout输出person2的name和age值(通过接口函数)。
#include<iostream>
using namespace std;
//定义Person类
class Person
{
public:
//无参构造函数
Person()
{
name="张三";
age=18;
}
//有参构造函数
Person(const char *newName,int newAge)
{
name=newName;
age=newAge;
}
//接口函数
const char *getName()
{
return name;
}
void setName(const char *newName)
{
this->name=newName;
}
int getAge()
{
return this->age;
}
void setAge(int newAge)
{
this->age=newAge;
}
private:
const char *name;
int age;
};
int main()
{
Person person1;
cout<<"姓名: "<<person1.getName()<<endl;
cout<<"年龄: "<<person1.getAge()<<endl;
person1.setName("李四");
person1.setAge(36);
cout<<"姓名: "<<person1.getName()<<endl;
cout<<"年龄: "<<person1.getAge()<<endl;
Person person2("王麻子",54);
cout<<"姓名: "<<person2.getName()<<endl;
cout<<"年龄: "<<person2.getAge()<<endl;
return 0;
}
注意:一个类可以有多个构造函数,且构造函数是可以有参数的。接口函数中可以对数据进行甄别输出和有条件输入,保证类的安全性。