Предположим, что у нас есть следующий класс:
class Test {
public:
Test() {}
std::vector<int>& getIntList() {
return intList;
}
private:
std::vector<int> intList;
};
Кроме того, у нас есть следующие коды внутри основной функции для объявления массива классов:
int main(void) {
Test* test[20];
for (int i = 0; i < 20; ++i) {
test[i] = new Test();
}
}
В этих случаях создаются тестовые объекты,
Теперь, если я добавлю несколько элементов в векторе внутри каждого класса случайным образом,
могут существовать шансы столкновения диапазона адресов памяти каждого вектора внутри каждого класса при изменении размера их памяти.
В этом случае весь «тестовый» объект копируется в другую область памяти, а вектор изменяется?Или вектор STL копируется только в другую область памяти и изменяет размер, пока класс ссылается на вектор?
В целом, не очень хорошая идея для такого кода?