练习 7.4 编写一个名为Person的类,使其表示人员的姓名和住址。使用string对象存放这些元素,接下来的练习将会不会充实这个类的其它特征。
class Person
{
private:
string name;
string addr;
};
练习 7.5 在你的person类中提供一些操作使其能够返回姓名和住址。这些函数是否应该是const?
应该为const,因为姓名和住址不该在获取信息时随便改变。
string Person::getName()const {
return this->name;
}
string Person::getAddr()const {
return this->addr;
}
练习 7.8 是否使用const进行限定,取决于是否要对参数进行修改。
练习 7.9 对person类添加读入和打印操作
istream& Person::read(istream& is, Person& person) {
is >> person.name >> person.addr;
return is;
}
ostream& Person::printP(ostream& os, const Person& person) {
os << person.name <<" " << person.addr << endl;
return os;
}
练习 7.10 在下面这条if语句中,条件部分的作用是什么
Read 的返回值时istream & ,内层read的返回值继续作为外层read的实参,大概为接着为data2读入数据。检测读入过程是否正确,若正确则为真。
练习 7.15 为你的Person类添加正确的构造函数
Person::Person() {
}
Person::Person(const string name, const string addr) {
this->addr = addr;
this->name = name;
}
Person::Person(istream& is) {
is >> this->name >> this->addr;
}
练习 7.16 在类的定义中对于访问说明符出现的位置和次数有限定吗?如果有,是什么?什么样的成员应该定义在public说明符之后?什么样的成员应该定义在private之后。
可以包含多个访问说明符;public之后多是给外部提供的接口,private之后的都是变量或者内部使用的函数。
练习 7.17使用class和struct时有区别吗?如果有,是什么?
都可以用来声明类,唯一区别是默认访问权限不同。Class的默认访问权限是private,struct的默认访问权限是private。
(23/1/1 晚 加油)
(未完)