我想使用 new
创建一个类的实例,但我想转换为引用以供进一步使用,而不是使用指针。目前我正在使用这一行 Foo& rf = *f;
进行显式转换,看起来有点傻。有没有更好更优雅的方法来创建引用变量并引用 new
创建的实例?
这里有一些代码来显示我在做什么,
class Foo{
public:
Foo(){
}
void printValue() {
cout << "This is Foo object " << endl;
}
};
int main() {
Foo* f = new Foo();
Foo& rf = *f;
rf.printValue();
f -> printValue();
}
原文由 Lin Ma 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以这样写:
在一行中:
但是,请注意,您应该稍后删除分配的内存:
我不建议您以这种方式编写代码,以避免内存泄漏。查看 此答案 以获取更多详细信息。尽可能选择智能指针或容器。