为何下程序运行不了
#include<iostream>
#include<unordered_map>
#include<windows.h>
using std::string;
using std::cout;
class Object {
private:
void *arg;
public:
Object& operator=(Object a) {
arg=a.arg;
return *this;
}
template<typename t>
Object& operator=(t a) {
free(arg);
arg=new t(a);
return *this;
}
template<typename t>
operator t() {
return *static_cast<t*>(arg);
}
Object() : arg(NULL) {}
};
int main() {
Object a;
a = "4";
cout << (string)a;
return 0;
}
将其中赋值语句改为整数,类型转换改为int就能运行..