C++ 类与构造函数详解

需积分: 12 4 下载量 113 浏览量 更新于2024-09-17 收藏 11KB TXT 举报
"C++ 类与构造函数以及IO流格式控制" 在C++编程语言中,类是面向对象编程的基础,它允许我们定义自定义的数据类型。类的定义包含数据成员(变量)和成员函数(方法),封装了数据和操作这些数据的逻辑。构造函数和析构函数是类中的特殊函数,它们在对象创建和销毁时自动调用。 1. 构造函数:构造函数是一种特殊的成员函数,用于初始化新创建的对象。它的名字与类名相同,没有返回类型,并且可以有参数。例如: ```cpp class MyClass { public: MyClass(int value) { myValue = value; } // 构造函数,用于设置myValue的初始值 private: int myValue; }; ``` 在这个例子中,`MyClass(int value)`是构造函数,用于设置`myValue`的初始值。 2. 析构函数:析构函数在对象生命周期结束时(即对象被销毁时)自动调用,用于清理资源或执行其他必要的操作。析构函数的名字是以波浪线(~)开头,后面跟类名。例如: ```cpp class MyClass { public: ~MyClass() { delete[] myArray; } // 析构函数,用于释放动态分配的内存 private: int* myArray; }; ``` 3. C++ IO流格式控制:C++中的iostream库提供了丰富的格式控制功能,使得输出更加灵活。 - `std::setw(int width)`: 设置输出字段的宽度。例如,`cout << setw(5) << i;`将输出的数字i左对齐,并填充空格使其宽度至少为5。 - `std::setprecision(int precision)`: 设置输出浮点数的精度。例如,`cout << setprecision(3) << value;`将输出3位小数的浮点数。 - `std::setiosflags(ios::flag)`: 设置输出流的标志,如`ios::left`和`ios::right`用于控制对齐方式,`ios::fixed`和`ios::scientific`用于设置浮点数的显示格式。 - `std::fill(char c)`: 设置填充字符。例如,`cout.fill('*')`将改变默认的填充字符为星号(*)。 以下是一些示例代码: ```cpp #include <iostream> #include <iomanip> int main() { int i; double value = 1.2345; std::cout << std::setprecision(3) << value << '\n'; // 输出3位小数 for (i = 0; i < 4; i++) { std::cout << std::setprecision(i) << value << '\n'; // 输出不同精度的浮点数 } std::cout << std::setiosflags(std::ios::fixed); // 设置为固定格式 std::cout << 0.000123 << '\n'; return 0; } ``` 通过熟练掌握类、构造函数和析构函数的使用,以及IO流的格式控制,程序员可以编写出更高效、可读性更强的C++代码。在实际项目中,这些基础知识是构建复杂系统的关键组成部分。