我虽然在函数调用之后发送到函数的所有rvalue参数都将被销毁.我完全搞砸了这个例子.有人可以帮我吗?也许它解释了一些链接.
class Test
{
public:
Test(const char* name)
: ptr(nullptr)
{
ptr = name;
}
~Test()
{
printf("%s\n", ptr);
system("PAUSE");
}
const char* ptr;
};
int main()
{
Test t("Hello");
}
Run Code Online (Sandbox Code Playgroud)
"Hello"是一个字符串文字.字符串是具有静态生命周期的基本值.同样如下42:该数字永远不会被销毁.
在其他新闻中:
初始化ptr为null,以及稍后分配给它的纳秒,令人困惑,因此可能浪费一些程序员的时间.只需将其初始化为应有的值即可.
暂停一个程序没有任何意义,可能是一个实际问题,所以不要.要从某个IDE运行它时查看程序的输出,请使用适当的方法运行它.EG Ctrl+ F5在Visual Studio.
对数据成员采用一些特殊的命名约定通常是个好主意.例如,ptr_或my_ptr,或myPtr,或mPtr(我更喜欢第一个).但是,不要_ptr像一些初学者那样使用,因为这与用于保持C和C++实现全局名称分开的约定冲突.