У меня есть собственный класс C ++ SrcClass
, содержащий следующее:
std::vector<shotEntry> objectsQueue;
bool getRelatedEntry(const entryToProcess *entriesDeets, int &i) const {
if (i >= (int)objectsQueue.size()) {
i = 0;
return false;}
if (!objectsQueue.size()) return false;
entriesDeets = &(objectsQueue[i++]);
return true;
}
В моем клиенте у меня есть:
const entryToProcess *entriesDeets = NULL;
int i = 0;
while (srcObj->getRelatedEntry(entriesDeets, i)) {
Когда я выполняю getRelatedEntry
формальный параметр,entriesDeets
обновляется, как ожидается, прежде чем вернуться.Когда он возвращает, фактический параметр клиента не обновляется.
Это в каком-то большом проекте, к которому я вернулся через два месяца.Я почти уверен, что последним рефакторингом, который я сделал, было введение этих проклятых vectors
.Сборка занимает много времени, когда я связываюсь с заголовками.Я запутался с инициализацией один раз / только для чтения / const'ness C #?Могу ли я сойти с рук, когда клиент получит обратно только для чтения собственный объект?