Изучаю C ++, так что будь осторожен:) ...
Я разрабатывал свое приложение в основном с использованием переменных кучи (из C), поэтому я разработал структуры, подобные этой:
QList<Criteria*> _Criteria;
// ...
Criteria *c = new Criteria(....);
_Criteria.append(c);
На протяжении всей моей программы я передаю указатели на определенные критерии или часто в список. Итак, у меня есть функция, объявленная так:
QList<Criteria*> Decision::addCriteria(int row,QString cname,QString ctype);
Criteria * Decision::getCriteria(int row,int col)
, который вставляет Критерии в список и возвращает список, чтобы мой графический интерфейс мог отображать его.
Мне интересно, если бы я как-то использовал ссылки. Так как я всегда хочу вернуть этот точный критерий, я должен был сделать:
QList<Criteria> _Criteria;
// ....
Criteria c(....);
_Criteria.append(c);
...
QList<Criteria>& Decision::addCriteria(int row,QString cname,QString ctype);
Criteria& Decision::getCriteria(int row,int col)
(не уверен, что последняя строка синтаксически верна, но вы получаете смещение).
Все эти элементы являются определенными, квазиглобальными элементами, которые являются ядром моей программы.
Итак, вопрос в следующем: я, конечно, могу выделить / освободить всю свою память без проблемы в методе, который я использую сейчас, но есть ли еще способ C ++? Если бы ссылки были лучшим выбором (еще не поздно изменить на моей стороне).
ТИА
Mike