【发布时间】:2011-04-27 22:22:30
【问题描述】:
我需要一些建议,因为我是 C++ 新手
对于我的风力涡轮机分析程序,我将其划分为处理某些任务的各种对象。
一个对象处理文件输入/输出,在我遇到麻烦的情况下,我从文件中读取数据以获取数据,然后将这些数据填充到一个名为刀片的对象数组中,每个对象都包含压力和坐标等所有相关的数组到每个刀片。
另一个任务是后期处理,我希望这个后期处理对象能够操纵刀片数据。
所以,我的 main 实例化了一个 post-pro 对象,它启动输入/输出对象并告诉它将数据读入 Blade 对象数组。到目前为止一切顺利,现在我想将填充的刀片对象数组恢复到 post-pro 中,这样我就可以用它做一些事情了。
这引出了我的问题,但我会先问问题0:
0:这种处理对象的方式听起来正确吗?
以及实际的问题:
1:返回对象数组的指针似乎是要走的路,出于某种原因,我想到 shared_ptr 是要走的路。但我不知道查看变量数据的语法。下面是来自 post-pro 类的一些示例代码:
void PostProcessor::start() {
VLMio io;//input/output object
io.loadData(theFileName);//load file
test = std::tr1::shared_ptr<Blade>(new Blade());//start up shared ptr called test
test = io.testReturn();//attempt to receive blade obect array into that pointer, is this correct?
cout<<test[0].x[0]<<endl//this line is trouble? is this how I would see the first x coord on the first blade?
//i.e is the syntax the same as for regular object pointers?
}
下面是加载数据的示例,它使用从文件中读取的数据填充一些 Blade 对象:
void IO::loadData() {
blades = new Blade[numberOfBlades];
blades[0].x[0] = 123;//just for example
blades[0].stress1 = 1234;//just for example
}
我还没有弄清楚如何返回这些刀片对象,但它可能看起来像这样:
std::tr1::shared_ptr<Blade> testReturn() {
//somehow attach a shared_ptr to the blades array pointer thing
//somehow return a shared ptr
}
综上所述,正确的做法是什么,智能指针对象的成员变量的语法是什么,希望大家理解,不好意思我是新手。
【问题讨论】:
-
io.testReturn()是如何定义的? -
testReturn 还没有完全解决,因为我不确定,但我已经添加了上面会发生什么的示例
-
这看起来像是 std::vector 的黄金时间 :)