【发布时间】:2009-07-18 19:11:04
【问题描述】:
谁能解释一下为什么这段代码只打印“42”而不是“created\n42”?
#include <iostream>
#include <string>
#include <memory>
using namespace std;
class MyClass
{
public:
MyClass() {cout<<"created"<<endl;};
int solution() {return 42;}
virtual ~MyClass() {};
};
int main(int argc, char *argv[])
{
auto_ptr<MyClass> ptr;
cout<<ptr->solution()<<endl;
return 0;
}
顺便说一句,我在解决方案中用不同的值尝试了这段代码,我总是得到“正确”的值,所以它似乎不是一个随机的幸运值。
【问题讨论】:
-
我的建议是查阅“银河系漫游指南”。