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

一个很棘手的有关问题(有无好的模式?)

2012-02-12 
一个很棘手的问题(有无好的模式??)classwaveback{public:openfile(){wafi.open()}redadata(){fidatawaf

一个很棘手的问题(有无好的模式??)
class   waveback
{
        public:
                openfile(){wafi.open();};
                redadata(){   fidata=wafi.read;};
                compute(){   dsdata=cop.compute(int   fidata)};
                display(dsdata);
        private:
                wavefile   wafi;
                compu   cop;
                int   fidata;
                int   dsdata;

};
本来这样也没有什么问题,但现在情况出现了.openfile   ()redadata   ()   compute()
都需要n次调用,   这样产生n个   dsdata,   但是这n个结果不能单独显示   需要   一起显示     也就是说   display(dsdata);这个函数只能调用一次   .

大家说说   如何是好   !!



[解决办法]
把dsdata定义成static vector <int> ;生成一个,往vector里插入一个
[解决办法]
class WaveBack
{
public:
Openfile(){wafi.open();};
Redadata(){ fidata=wafi.read;};
Compute(){ dsdata=cop.compute(int fidata)};
int GetComputed() { return dsdata;}
private:
WaveFile wafi;
Compu cop;
int fidata;
int dsdata;
};

class Displayer
{
public:
AddData(int dsdata) { mDsData.push_back(dsdata);}
void Display()
{
// display all the data in mDsData;
}


private:
std::vector <int> mDsData;
};


void MyWork()
{
WaveBack wave;
Displayer displayer;
for (.....) {
wave.Open.....
wave.Read....
wave.Compute...
dispayer.AddData(wave.GetComputed...);
}
displayer.Display();

}
[解决办法]
#include <vector>

...

class waveback
{
public:
openfile(){wafi.open();};
redadata(){ fidata=wafi.read;};
compute(){ dsdata.push_back(cop.compute(fidata))};
display(dsdata);
private:
wavefile wafi;
compu cop;
int fidata;
vector <int> dsdata;

};
[解决办法]
扔 vector 里面,
使用 vector.push_back 方法即可。

然后在 display方法中遍历这个 vector 即可 ~

热点排行