<class> :: <class>()的含义:interface(),interface()

时间:2015-11-24 12:58:41

标签: c++

我已经在一些c ++代码中看到了上述内容,并想知道发生了什么。任何人都能解释这对我意味着什么吗?

SomeManager::SomeManager()
   : m_someinterface(NULL)
   , m_someinterface(NULL)
{
}

1 个答案:

答案 0 :(得分:4)

我认为你的意思是以下

SomeManager::SomeManager() : m_someinterface(NULL) , m_someinterface(NULL)
{
}

它是具有mem-initializer list

的类SomeManager的构造函数的定义
m_someinterface(NULL) , m_someinterface(NULL)

初始化其子对象(数据成员和/或基类子对象)。

考虑到数据成员应具有不同的名称,例如 m_someinterface1 m_someinterface2。

这是一个简单的例子

class A
{
public:
    A();

private:    
    int x;
    int y;
};

A::A() : x( 10 ), y( 20 ) {}

创建类的对象后,如

A a;

其数据成员a.xa.y的对应值为10和20。

另一个显式调用基类构造函数的例子

class A
{
public:
    A( int x, int y ) : x( x ), y( y ) {}

private:    
    int x;
    int y;
};

class B : piblic A
{
public:
    B( int );

private:    
    int z;
};

B::B( int z ) :  A( z / 10, z % 10 ), z( z ) {}