带委派的C ++构造函数

时间:2015-09-21 09:32:54

标签: c++

代码如下:

#include <iostream>
#include <cstdio>
using namespace std;

typedef char BYTE;
#define BUF_SIZE 30

class A
{
public:
    A();
    ~A(){}
    inline const BYTE* GetBuffer() const { return m_pBuf; }
    int Pop(void);
private:
    const BYTE* m_pBuf;
};

A::A():m_pBuf() //<---line 19
{
    BYTE* pBuf = new BYTE[BUF_SIZE];
    if (pBuf == NULL)
        return;

    for (int i=0; i<BUF_SIZE; i++)
    {
        pBuf[i] = i;
    }

    m_pBuf = pBuf;
}

int main()
{
    A a;
    const BYTE* pB = a.GetBuffer();
    if (NULL != pB)
    {
        for (int i = 0; i<BUF_SIZE;i++)
            printf("%u", pB[i++]);
    }

    return 0;
}

我试图弄清楚提供了多少种C ++构造函数的初始化列表。我在上面找到一个特别的。有人请帮助解释第19行。不知道这是什么意思。 thx提前。

1 个答案:

答案 0 :(得分:0)

getElementsByClassName() 正在调用A::A()的构造函数。运算符A初始化列表,它告诉在A的私有成员 :上调用默认构造函数。