题目描述
定义一个图书类Book,类中包括name(书名)、author(作者)和sale(销售量)3个数据成员以及所有参数都具有默认值的构造函数、析构函数、设置信息的函数(SetInfo())和显示信息的函数(ShowInfo())。
主函数中定义图书类Book对象book1,根据用户输入的信息调用成员函数SetInfo()设置图书信息,并调用成员函数ShowInfo()显示图书信息。同时观察构造函数和析构函数执行顺序。
输入格式
一行,包括书名,作者和销售量(其中书名和作者字符串中均不包含空白字符,销售量为正整数)
输出格式
三行
第一行:构造函数调用信息
第二行:图书信息
第三行:析构函数调用信息
样例输入
C++程序设计 齐建玲 10000
样例输出
构造函数被调用。
书名:C++程序设计
作者:齐建玲
销售量:10000
析构函数被调用。
class Book
{
public:
Book() : _name(""), _author(""), _sale(0)
{
cout << "构造函数被调用" << endl;
}
/*Book(string name, string author, int sale) : _name(name), _author(author), _sale(sale)
{
cout << "构造函数被调用" << endl;
}*/
~Book()
{
cout << "析构函数被调用" << endl;
}
void SetInfo(string name, string author, int sale)
{
_name = name;
_author = author;
_sale = sale;
}
void ShowInfo()
{
cout << "书名:" << _name.c_str() << endl;
cout << "作者:" << _author.c_str() << endl;
cout << "销售量:" << _sale << endl;
}
private:
string _name;
string _author;
int _sale;
};
int main()
{
Book* bk = new Book();
bk->SetInfo("C++程序设计", "齐建玲", 10000);
bk->ShowInfo();
delete bk;
system("pause");
return 0;
}