可能重复:
What is this weird colon-member syntax in the constructor?
我需要知道这段代码的含义:
Cman::Cman() :
m_pThread (NULL) //m_pThread is pointer to other class
{
}
我真的不明白这段代码。
这个NULL
是什么意思?
我可以将它用作常规构造函数吗?
答案 0 :(得分:5)
它表示在执行构造函数内的代码之前将m_pThread
初始化为NULL。
答案 1 :(得分:5)
这是类Cman
的默认构造函数。它会将m_pThread
的值(可能是作为指针的类的私有成员)初始化为NULL
。当{1}}没有指向任何有用的东西时(而不是你无法测试的随机值),它被分配给指针。
答案 2 :(得分:3)
这是类Cman
的默认构造函数,它初始化一个名为m_pThread
的成员(它是一个指针),值为NULL。此上下文中的NULL表示 nothing , empty 或 0 ,从根本上说它是无效指针(指向任何内容)。
答案 3 :(得分:3)
Cman::Cman() : m_pThread(NULL) { }
:
之后的事情称为初始化列表。它用于初始化成员变量。因此语法m_pThread(NULL)
使用m_pThread
初始化NULL
。您可以使用它来初始化所有成员变量。
实施例,
class Cman
{
Thread *m_pThread;
int Duration;
int MemorySize;
public:
Cman() : m_pThread(NULL), Duration(10000), MemorySize(9999)
{
}
};
请记住,初始化和分配之间存在差异。
答案 4 :(得分:2)
答案 5 :(得分:1)
这是Cman类的简单构造函数,它使用初始化列表初始化m_pThread
并将其值设置为NULL。在大多数情况下,NULL是以这种方式定义的宏
#define NULL 0
or
#define NULL 0L
初始化后,指针指向地址0x000000。