【发布时间】:2013-06-05 01:43:10
【问题描述】:
众所周知,用new定义堆变量会得到指针而不指定名称:
Var *p = new Var("name", 1);
但我必须稍后在程序中用delete p 清除p 指向的变量。
我想声明一个堆栈变量,以便在函数退出后自动清除它,但我只想获取指针,以及以下内容:
Var v("name", 1);
Var *p = &v;
相当乏味,并且永远不会引用说明符v。
我可以声明一个堆栈类实例并在不指定其名称的情况下获取其指针吗?
【问题讨论】:
-
Var *p = Var("name", 1);不起作用? -
嗯,你真的需要通过指针来访问对象吗?
-
我会坚持下去——我认为答案是“不,你不能那样做;也就是说,你不能在堆栈上定义一个匿名变量”。
-
只在需要指针版本的位置使用“&v”有什么问题?
-
“获取指针而不指定名称”是什么意思?
标签: c++