Передача и сохранение константной ссылки через конструктор?
Это, наверное, простой вопрос, но яЯ застрял на этом. Я'я пытаюсь передать объект из ObjectA в ObjectB (который является членом ObjectA) через него 'конструктор Однако вместо передачи по значению я хочу передать только константную ссылку и хранить эту ссылку в течение неопределенного времени. Проблема в том, что яЯ не уверен, как это сделать.
Я могу заставить это работатьс указателями как это:
class ClassB
{
private:
int *ptrInternalX;
public:
ClassB( int *tempX );
}
ClassB::ClassB( int *tempX )
{
ptrInternalX = tempX
}
Таким образом, объект создается и передается указатель на int, и этот указатель сохраняется внутри класса для последующего использования.
Однако указатели заставляют меня беспокоиться об утечках памяти и других проблемах при использовании более крупных объектов, поэтому яЯ хотел бы попытаться сделать что-то подобное, используяпостоянные ссылки (const &). Тем не менее, это некажется, работает ...
class ClassB
{
private:
int &internalX;
public:
ClassB( const int &tempX );
}
ClassB::ClassB( const int &tempX )
{
internalX = tempX
}
Я знаю, что ссылки по сутипсевдоним для существующей переменной (другое имя, которое ссылается на тот же адрес памяти), и они должны быть немедленно инициализированы с использованием существующей переменной. Так что это создает ошибку в моей программе!
Это вообще возможно? Или есть лучший / более понятный способ сделать что-то подобное? Причинами, по которым я хочу использовать постоянные ссылки, является скорость передачи только ссылки вместо большого объекта при сохранении данных от случайных изменений и утечек памяти ...Я уверен, что есть простой и прямой способ сделать это, но яЯ не очень знаком с константой передачи ссылок.