Как я видел, new
размещает неназванный объект в бесплатном хранилище и возвращает указатель на этот неназванный объект.
Таким образом, мы можем создать ссылку на этот объект:
int* pi = new int(100);
int& ri = *pi;
Что меня интересует, так это то, что я могу создать объект в бесплатном хранилище, не назначая возврат new
указателю, а ссылаясь на неназванный объект, назначая значение, на которое нет ссылокиз new
по ссылке:
int& x = *(new int(7));
cout << x << endl; // 7
x += 34;
cout << x << endl; // 41
Я хочу знать, могу ли я это сделать, или это плохая идея?
Примечание: на производстве я держусь подальшенасколько это возможно при обработке необработанной памяти, вместо этого я использую интеллектуальные указатели и контейнеры STL.