比如有一个类TitleInfo存储一本书的信息,他的成员函数设置书名:
应该:
1.
void TitleInfo::SetTitle()
{
cout << "请输入书名:";
//检查输入有效性代码已经省略
cin >> _book_title;
}
然后主函数直接调用
2.
void TitleInfo::SetTitle(string title)
{
_book_title=tile;
}
然后再主函数里面检查输入有效性,直接传参数
这两种写法哪种更好?各有什么好处?
后者比较好,因为一般来说一个函数应该只干一件事。
第一个函数干了2件事。
干了2件事的后果就是,导致无论更改2件事的任何一件,都要修改这个函数。
比如说,你要把从键盘输入换成从文件输入,你还得修改SetTitle,导致写出来的函数不通用。