这可能是一个简单的问题,但我坚持下去。我正在尝试通过它的构造函数将对象从 ObjectA 传递到 ObjectB(它是 ObjectA 的成员)。但是,我不想通过值传递,而是只想传递一个 const 引用并无限期地存储该引用。问题是我不知道该怎么做。
我可以用这样的指针来解决这个问题:
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
}
我知道引用本质上是现有变量的“别名”(引用相同内存地址的不同名称),它们需要立即使用现有变量进行初始化。所以这会在我的程序中产生错误!
这甚至可能吗?还是有更好/更清晰的方法来做这样的事情?我想使用常量引用的原因是只传递引用而不是大对象的速度,同时保持数据免受意外更改和内存泄漏的影响......我确信有一种简单直接的方法来这样做,但我对 const 引用传递不是很熟悉。