我这里有一些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++并试图理解它.我正在查看一些代码并看到:
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)"是什么意思?
我非常确定内置类型的数组是单元化的,而UDT数组是默认初始化的.
int foo[5]; // will contain junk
Foo foo[5]; // will contain 5 Foo objects that are default initialized
无论数组是在堆栈还是堆上分配,都会发生这种情况.
但是,我发现很难找到这方面的权威来源.Bjarne说:
"数组和结构的成员是默认初始化的,取决于数组或结构是否是静态的",这并没有真正告诉我太多.
我也试图在标准中找到一些东西,但到目前为止没有任何结果.
有谁知道确认上述的权威来源?