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

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

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