Мне нужен совет, потому что я новичок в c ++
Для моей программы анализа ветряных турбин я разделил ее на различные объекты, которые выполняют определенные задачи.
Один объект обрабатывает ввод файла/ output, и в моем хлопотном случае я читаю из файла, чтобы получить данные, и эти данные заполняются массивом объектов, называемых блейдами, каждый из которых содержит массивы таких вещей, как напряжения и координаты, все связанные с каждым блейдом.
Другая задача - постобработка, и я хочу, чтобы этот пост-про-объект мог манипулировать данными блейдов.
Итак, мой главный экземпляр объекта 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
}
В целом, это правильный способ сделать это, иКаков синтаксис для переменных-членов объектов интеллектуальных указателей, надеюсь, вы понимаете, извините, я новичок.