我有一个带有静态变量的类:null。
static Pointer<Value> Null;
指针是一个使用引用计数内存管理的类。
然而,我收到一个错误:没有匹配函数来调用Pointer :: Pointer()
在线:
Pointer<Value> Value::Null(new Value());
感谢。
指针类的摘录:
template <typename T>
class Pointer
{
public:
explicit Pointer(T* inPtr);
构造函数来源
mPtr = inPtr;
if (sRefCountMap.find(mPtr) == sRefCountMap.end()) {
sRefCountMap[mPtr] = 1;
} else {
sRefCountMap[mPtr]++;
}
答案 0 :(得分:1)
该行:
static Pointer<Value> Null;
调用Pointer :: Pointer()构造函数。它表明你的Pointer类没有这样的构造函数,而是有一个接受void*
的构造函数。所以尝试将其改为
static Pointer<Value> Null(0);
答案 1 :(得分:0)
我假设你的班级名为Value。
// Header file
class Value
{
public:
...
static const Pointer<Value> Null;
};
// This should be in the cpp file.
const Pointer<Value> Value::Null(new Value);
答案 2 :(得分:0)
我相信应该是这样的:
// In the header file.
class Value
{
public:
...
static const Pointer<Value> Null;
};
// In the cpp file.
const Pointer<Value> Value::Null(reinterpret_cast<Value*>(0));