0
MemoryManager openMemory() {
if (...) {
return memory_manager_instance;
}
else
return NULL;
}
MemoryManager
是用户定义的C++类的名称。上面的函数定义给了我标题中的错误。无法将'0l'从'long int'转换为'MemoryManager'
基本上我不想在条件不成立时返回实例。这样的函数定义是有效的,我通常在Java中做,但它似乎不适用于C++。我该怎么做才能解决这个问题?
Java只有指针,这就是为什么你可以返回NULL对象。在C++中,您的代码需要MemoryManager中的转换构造函数,它不存在或者是显式的。你可能意思是返回一个指针而不是一个值。也可能需要抛出异常或返回一个默认的初始化对象 - 无法从您的问题中得知。 – 2011-12-13 18:53:32