Ter*_* Li 0 c++ null class function type-conversion
MemoryManager openMemory() {
  if (...) {
    return memory_manager_instance;
  }
  else 
    return NULL;
}
MemoryManager是用户定义的C++类的名称.上面的函数定义给出了标题中的错误.
基本上我不想在条件不成立时返回实例.这样的函数定义是有效的,我通常用Java做的,但它似乎不适用于C++.我该怎么做才能解决这个问题?
让你的函数返回一个MemoryManager *(可能使用C++库或boost中提供的几个智能指针类之一).如果MemoryManager是类的名称,则写入的此函数返回一个副本memory_manager_instance.这与Java不同,Java中的变量类型MemoryManager是对象的引用.
编辑:此外,看起来你正在尝试实现单例.您需要为MemoryManagerprivate或protected 创建默认构造函数,复制构造函数和赋值运算符.前两个也在Java中,但不是最后一个!