一.C++的输出格式
setw和setfill,用于控制输出格式的函数,在头文件#include<iomanip>中声明使用
setw()用于设置下一个输出字段的宽度.参数是一个整数,来表示字段的宽度
#include <iostream>
#include <iomanip>
int main() {
int num = 123;
std::cout << std::setw(5) << num << std::endl; // 输出: 123
return 0;
}
如上段代码所示,标准输出流输出num的值即123,setw(5)设置其宽度为5,会在数字前面填充空格.
setfill
setfill函数用于填充数字,通常与setw一起适用.当宽度不够时,会使用setfill指定的数字来填充额外的空间
如
#include <iostream>
#include <iomanip>
int main() {
int num = 123;
std::cout << std::setfill('*') << std::setw(5) << num << std::endl; // 输出:**123
return 0;
}
setw和setfill经常一起使用,以定制输出的格式
#include <iostream>
#include <iomanip>
int main() {
double value = 123.456;
std::cout << std::setfill('0') << std::setw(10) << value << std::endl; // 输出:00000123.456
return 0;
}
二.默认构造函数和带参数的构造函数
- 默认构造函数:当我们不需要为对象提供任何特定的初始值时,或者当我们想要使用类成员变量的默认值时,可以使用默认构造函数。精炼下来就是给变量赋一个不可改变的初始值
- 带参数的构造函数:当我们需要在创建对象时为其成员变量设置特定的初始值时,应该使用带参数的构造函数。这有助于确保对象在创建时就处于正确的状态。即给变量一个输入的初始值
- 注意:构造函数的函数名需要和类的名字一样。这是构造函数的一个基本规则。构造函数是一种特殊的成员函数,用于在创建类的对象时进行初始化。当定义构造函数时,其函数名必须与类名相同,包括大小写也要一致。当一个类中没有定义任何构造函数时,编译器会自动生成一个.
没有定义以此题为例
#include<iostream>
using namespace std;
class Point {
private:
int x, y;
public:
// 默认构造函数
Point() : x(0), y(0) {} //没输入就默认两个值都为0
// 带参数的构造函数
Point(int x, int y) : x(x), y(y) {} //初始化
// 移动函数,接受x和y方向上的移动距离
void move(int dx, int dy) {
x += dx; // 将移动距离加到当前x坐标上
y += dy; // 将移动距离加到当前y坐标上
cout << "移动后的坐标: " << x << '-' << y << endl; // 输出移动后的坐标
}
};
int main() {
int initialX, initialY, moveX, moveY;
Point point;
// 读取初始坐标
cout << "请输入初始x坐标和y坐标: ";
cin >> initialX >> initialY;
point = Point(initialX, initialY); // 使用构造函数初始化point对象 ,接受用户输入的初始化的值
// 读取移动距离
cout << "请输入x方向和y方向的移动距离: ";
cin >> moveX >> moveY;
// 移动点
point.move(moveX, moveY); // 调用类中move函数,传入移动距离
return 0;
}