首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++的类和数据有关问题,求解

2013-01-04 
C++的类和数据问题,求解我使用了一个简单的类来储存变量,代码如下class Data{public:Data(): data(0){}Dat

C++的类和数据问题,求解
我使用了一个简单的类来储存变量,代码如下


class Data

{

public:

Data(): data(0){}

Data(int x): data(x) {}// 重载构造函数

~Data() {}

void s(int newdata) { data = newdata; }// g为setdata的缩写,使用时较为方便

int g() const { return data; }// g为getdata的缩写,使用时较为方便

void add(int x) {data += x;}

void sub(int x) {data -= x;}

void mul(int x) {data *= x;}

void div(int x) {data /= x;}

private:

int data;

};



然后我在main函数里面创建了多个对象来储存一些数据

...


Data maxexp ;// 记录主角的最大经验值

Data hhp;// 记录主角的HP

Data hmp;// 记录主角的MP

Data zhp;// 记录怪物的HP

Data hg;// 记录主角的攻击力

Data hf;// 记录主角的防御力

Data zg;// 记录怪物的攻击力

Data zf;// 记录怪物的防御力

Data maxhhp;// 记录主角的最大HP

Data maxhmp;// 记录主角的最大MP

Data maxzhp;// 记录怪物的最大HP

Data zname;// 记录怪物的编号

...




接着我继续在main函数里实例化了几个对象,这个对象用于接收数据并输出一些结果

...

while(true)

{

std::cin >> Temp_input;// 读取用户输入

User_input.s(Temp_input);

Data_compute* compute = new Data_compute(User_input.g(), location.g());// 对数据进行计算

delete compute;

Data_face* face = new Data_face(User_input.g(), location.g());// 输出界面

delete face;

}

...

现在问题就出来了,我在一个名为Data_face类里面有一个输出文字的函数,但这个函数需要获取一些存在Data类里面的数据,例如输出我有多少金币什么的,但是在这个函数里不能这样写代码:

std::cout << "您有";

std::cout << Money.g();

std::cout << “个金币”;?

所以求高手告诉我怎么办
[解决办法]
建議多看點別人的代碼,然後模仿,一步一步打好基礎之後,自己再有想法的時候,就能應用自如了。
[解决办法]
我感觉可以给Data类加一个成员变量叫name,并且添加一个
friend ostream &operator <<(ostream &os, const Data &d)
{
    os << d.name << "\t" << d.data << endl;
    return os;
}
直接调用 cout << d;就可以了

[解决办法]
重载构造函数要用const&做参数

热点排行