问题描述
- C++ 类,如何用类似字符串的东西定义一个数据成员?
-
题目:设计一个书类,能够保存书名、定价,所有书的本数和总价。
为了实现这一要求,可以将书名、定价设计为普通数据成员,将书的本数和总价设计为静态数据成员。(如何实现题目中的书名?)
如:
class book{
public:
book()//构造函数,怎样定义一个名字
void show();//cout名字
private:
//怎样定义一个名字
}
void main{
book a();//对象a,输入一个名字;
}求各位赐教!
解决方案
#include
#include
using namespace std;
class Book
{
public:
Book(string name,double price){
_name=name;
_price=price;
_bookNum++;
_sumPrice+=price;
};
void display(){
cout<<"name:"<<_name<<endl;
cout<<"price:"<<_price<<endl;
cout<<"totle number:"<<_bookNum<<endl;
cout<<"totle price:"<<_sumPrice<<endl;
}
private:
string _name;
double _price;
static int _bookNum;
static double _sumPrice;
};
int Book::_bookNum=0;
double Book::_sumPrice=0.0;
int main()
{
Book b1("c++ Primer",105);
Book b2("c++ Primer plus",98);
b1.display();
b2.display();
return 0;
}
这样就好了,静态成员一定要先初始化。
解决方案二:
类中定义一个static数据成员,为什么还要在类外定义?
解决方案三:
一开始包含的头文件:iostream和string