C++编程基础:常量、指针、构造析构函数与字符串类解析

需积分: 0 0 下载量 11 浏览量 更新于2024-08-05 收藏 164KB PDF 举报
"C++语言相关知识,包括常量的数据类型、指针占用内存、数组与指针的大小、构造函数与析构函数的重载、面向对象编程中的类成员函数以及字符串类的声明" 在C++编程语言中,常量有不同的数据类型,具体如下: 1. 常量1的数据类型是`int`,因为在C++中,没有单独的整型常量类型,所以无符号整型常量默认为`int`类型。 2. 常量1.0的数据类型是`double`,因为C++中默认的浮点数是双精度(`double`)。 3. 常量"1"的数据类型是`const char*`,即指向字符常量的指针,它表示一个字符串字面值。 关于指针的内存占用: 在win32x86模式下,所有类型的指针,无论`int*p`、`int**pp`还是`double*q`,都占据4个字节的内存单元,这是因为32位系统中指针通常为32位,即4字节。 数组和指针的大小区别: 3. 对于语句`short int a[10]; short int *p = a;`,`sizeof(a)`返回数组`a`所占用的总内存,即10个`short int`的大小,因此`sizeof(a) = 20`(假设`short int`为2字节)。而`sizeof(p)`返回指针`p`自身占用的内存,通常是4字节(32位系统)。 构造函数与析构函数的重载规则: 4. 构造函数可以重载,因为它可以根据不同的参数列表来创建对象,这里的参数可以任意定义,但`this`指针除外。而析构函数不能重载,因为它总是只有一个参数,即隐含的`this`指针。 关于类成员函数的示例: 5. 给定的代码段展示了C++中构造函数、拷贝构造函数、赋值运算符重载、类型转换运算符以及析构函数的使用。在`main()`函数中执行的代码会打印出相应对象的创建、赋值和销毁过程,以及计算和显示变量值。最后,`y`和`(int)y`的值分别为1。 字符串类的声明: 6. 示例中给出了一个自定义的字符串类`STRING`,它包含一个`char`类型的数组。通常在C++中,我们会使用标准库`<string>`中的`std::string`类来处理字符串,但这个例子展示了一个自定义实现字符串的方法。完整的类定义可能包括初始化、赋值、长度计算、拼接等方法。 以上内容详细阐述了C++中涉及的常量数据类型、指针内存占用、数组与指针的大小比较、构造函数与析构函数的重载特性,以及自定义字符串类的基础知识。这些知识点是C++编程学习的基础,理解和掌握它们对于深入学习C++至关重要。