相关疑难解决方法(0)

C++,构造函数后的冒号是什么意思?

可能重复:
构造函数中的冒号后的变量
C++构造函数语法问题(noob)

我这里有一些C++代码:

class demo 
{
private:
    unsigned char len, *dat;

public:
    demo(unsigned char le = 5, unsigned char default) : len(le) 
    { 
        dat = new char[len];                                      
        for (int i = 0; i <= le; i++)                             
            dat[i] = default;
    }

    void ~demo(void) 
    {                                            
        delete [] *dat;                                           
    }
};

class newdemo : public demo 
{
private:
    int *dat1;

public:
    newdemo(void) : demo(0, 0)
    {
     *dat1 = 0;                                                   
     return 0;                                                    
    }
};
Run Code Online (Sandbox Code Playgroud)

我的问题是,有什么: len(le): demo(0, 0)被称为?

它与继承有关吗?

c++

191
推荐指数
4
解决办法
16万
查看次数

构造函数中冒号后的变量

我还在学习C++并试图理解它.我正在查看一些代码并看到:

point3(float X, float Y, float Z) :
x(X), y(Y), z(Z)  // <----- what is this used for
{
}
Run Code Online (Sandbox Code Playgroud)

位于构造函数参数旁边的"x(X),y(Y),z(Z)"是什么意思?

c++ constructor ctor-initializer

22
推荐指数
2
解决办法
8173
查看次数

数组初始化

我非常确定内置类型的数组是单元化的,而UDT数组是默认初始化的.

int foo[5]; // will contain junk
Foo foo[5]; // will contain 5 Foo objects that are default initialized

无论数组是在堆栈还是堆上分配,都会发生这种情况.

但是,我发现很难找到这方面的权威来源.Bjarne说:

"数组和结构的成员是默认初始化的,取决于数组或结构是否是静态的",这并没有真正告诉我太多.

我也试图在标准中找到一些东西,但到目前为止没有任何结果.

有谁知道确认上述的权威来源?

c++ arrays initialization

0
推荐指数
1
解决办法
1639
查看次数