c++ 如何在堆上新建一个引用

如题,我想在c++中将

void a() {
  int *a =  new int;  
}

用引用实现

不知道你想要的是不是这样

int& a = *(new int{0});
1 个赞

去掉{0}也行

没看懂这个int{0}是什么操作[捂脸]

https://en.cppreference.com/w/cpp/language/aggregate_initialization

1 个赞

谁去释放。。。。怎么释放。。。

delete &a 不行吗?

delete &a

int *a = (int*)malloc(sizeof(int))

*a = 1;
a[0] = 10;

feee(a)

抱歉,我说的是用引用…

用智能指针比较潮

#include <memory>

auto a = std::make_unique<int>(1);
// You can deref a to get the integer on heap
// std::cout << *a;
3 个赞

谢谢,但我还是更倾向于引用

lz需要这样做的业务场景是什么 方便分享吗

没有什么业务场景「笑哭」

最近在重构我的数据结构的代码,想把所有的指针换成引用

我受不了我的代码库里全是星星了…

指针又不是闭上眼睛就不存在的东西

智能指针能做到的事终究有限

主要是太多*看的头疼,令人望而生畏…

隔着指针用 -> 不是一样访问属性?

不是指针胜似指针的东西太多了,习惯就好(

1 个赞

好吧,可以。但是真没见过这么用的。。。