Передача и сохранение константной ссылки через конструктор?

Это, наверное, простой вопрос, но яЯ застрял на этом. Я'я пытаюсь передать объект из 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
}

Я знаю, что ссылки по сутипсевдоним для существующей переменной (другое имя, которое ссылается на тот же адрес памяти), и они должны быть немедленно инициализированы с использованием существующей переменной. Так что это создает ошибку в моей программе!

Это вообще возможно? Или есть лучший / более понятный способ сделать что-то подобное? Причинами, по которым я хочу использовать постоянные ссылки, является скорость передачи только ссылки вместо большого объекта при сохранении данных от случайных изменений и утечек памяти ...Я уверен, что есть простой и прямой способ сделать это, но яЯ не очень знаком с константой передачи ссылок.

Ответы на вопрос(1)

Ваш ответ на вопрос