- 博客(10)
- 收藏
- 关注
原创 C++的string流简述
stringstream跟fstream一样都是继承自iostream,所以在使用iostream对象的地方,也可以用stringstream来代替。
2024-01-05 13:57:31 456 1
原创 C++文件输入输出
ifstream从指定文件读取数据。ofstream从指定文件写入数据。fstream从指定文件读取或写入数据。fstream不仅继承了iostream类型的操作,还增加了一些对文件进行操作的成员。取自C++primer。
2024-01-04 15:13:37 1381 1
原创 C++缓冲流简述
/共同关联到cout,不管使用cin还是cerr都会刷新cout缓冲区。//默认cin关联cout,此时返回的是cout的指针。//没错,使用tie函数关联一个空指针就可以断开关联。例子:cin.tie(&cerr);//断开与cout的关联,并与cerr建立关联。一般情况一个流最多可以关联一个流,但是多个流可以关联同一个ostream。例子:cin.tie(&cout);2.带参数(流的地址),关联两个流,流和相同也可不同。1.不带参数,返回目标流的关联流的指针形式。
2024-01-03 17:53:50 589 1
原创 C++中的IO类简述
标注库是我们能忽略不同类型的流之间的差异,这是通过继承机制实现的,简单来说,继承机制使我们可以声明一个特定的类继承自另一个类,我们通常可以将一个派生类(基础类)对象当作其基类(被继承的类)对象来使用。比如类型ifstream和istringstream都继承自istream,因此我们就可以通过使用istream对象一样来使用ifstream和istringstream对象。为了支持使用宽字符的语言,标准库定义了一组类型和对象来操纵wchar_t类型数据,宽字符版本的类型和函数的名字以一个w开始。
2024-01-02 11:41:09 631
原创 C++成员变量的初始化与默认构造函数
这个时候程序能正常执行,并且输出p1的成员变量num为10,这就说明使用默认构造函数需要进行类内初始化。我个人总结的就是:假如对象成员变量没有类内初始化,那么默认构造函数将无法对对象进行初始化,如果这个对象创建在函数体外那就会进行值初始化,否则不会进行初始化。注意看一个小细节,我将A类的p1对象创建在函数体外面,这个时候p1就会进行值初始化而不是通过默认构造函数初始化,所以p1的num就被初始化为0。这个时候编译器会报错说对象p1没有进行初始化,再看以下代码。欢迎大家纠正我的错误,并补充不足的知识点。
2023-12-28 22:40:54 450 1
原创 重载输入输出运算符的方法及注意事项
需要注意的是输入输出运算符重载不能是类的成员,并且istream运算符重载必须传入对象的引用,不然就不能对对象进行输入,不能光看不练,快去多写几个案例加强记忆!istream流也是同理,快去编译器进行练习吧,
2023-12-27 23:44:02 337
原创 C++中类的列表初始化顺序需要注意的地方
这里a被初始化为val,但是接下来进行初始化的不是c而是先对b进行初始化,但是c现在并没有被初始化,所以b赋值完的内容就是一个不存在的值。X::X(int val):a(val), c(val), b(val)//使用列表初始化三个成员。在上面的代码中,列表初始化的顺序好像并不会影响程序的执行,但接下来的代码还能正确的输出结果吗?解析初始化的过程:X::X(int val):a(val),c(val),b(c)cout << "初始化完成!" << endl;cout << "初始化完成!
2023-12-27 17:32:14 351 1
原创 C++中类的构造函数对象初始化与赋值的问题
/函数后面接冒号是对象数据进行列表初始化,初始化的数据后面要用()或{}进行初始化。//错误,因为n1是const类型,必须初始化时赋值。//错误,因为n2是引用类型,必须在初始化时赋值。//正确,因为n是变量可以初始化后进行赋值。
2023-12-27 16:53:07 335
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人