掌握C++ 主讲人:孙鑫 tp://www.sunxin.org
掌握C++ 主讲人:孙鑫 http://www.sunxin.org
C++的标准输入输出流 C++中提供了一套输入输出流类的对象,它们是cin、cout和cerr,对 应c语言中的三个文件指针 stdin、 stdout、 stderr,分别指向终端输入 终端输岀和标准岀错输出(也从终端输出)。ci与>>一起完成输入 操作,cout、cer与<<一起完成输出与标准错误输出。利用cin和cout 比C语言中的scan和pint要方便得多,cin和cout可以自动判别输入输 出数据类型而自动调整输入输出格式,不必像 scanf和pint那样一个 个由用户指定。使用cin,cout不仅方便,而且减少了出错的可能性。 对于输出来说,我们像以上方式调用就可以了,对于输入来说,我 们以如下方式调用即可: int 1; Cn>>1; 注意箭头的方向。在输出中我们还使用endl( end of line),表示换 行,注意最后一个是字符1,而不是数字1,endl相当于C语言的\n', 表示输出一个换行。 tp://www.sunxin.org
C++的标准输入输出流 C++中提供了一套输入输出流类的对象,它们是cin 、cout和cerr,对 应c语言中的三个文件指针stdin、stdout、stderr,分别指向终端输入、 终端输出和标准出错输出(也从终端输出)。cin与>>一起完成输入 操作,cout、cerr与<<一起完成输出与标准错误输出。利用cin和cout 比C语言中的scanf和printf要方便得多,cin和cout可以自动判别输入输 出数据类型而自动调整输入输出格式,不必像scanf和printf那样一个 个由用户指定。使用cin,cout不仅方便,而且减少了出错的可能性。 对于输出来说,我们像以上方式调用就可以了,对于输入来说,我 们以如下方式调用即可: int i; cin>>i; 注意箭头的方向。在输出中我们还使用endl(end of line),表示换 行,注意最后一个是字符‘l’,而不是数字1,endl相当于C语言的'\n', 表示输出一个换行。 http://www.sunxin.org
C++的特性 构造函数 1、构造函数的作用是对对象本身做初始化工作,也就是给用户提供初始 化类中成员变量的一种方式,在类对象有虚表的情况下,构造函数还 对虚表进行初始化 、如果一个类中没有定义任何的构造函数,那么编译器只有在以下三种 情况,才会提供默认的构造函数: A、如果类有虚拟成员函数或者虚拟继承父类(即有虚拟基类)时 B、如果类的基类有构造函数(可以是用户定义的构造函数,或编译器提 供的默认构造函数); 1C、在类中的所有非静态的对象数据成员,它们对应的类中有构造函数 (可以是用户定乂的构造函数,或编译器提供的默认构造函数) tp://www.sunxin.org
C++的特性 ◼ 构造函数 1、构造函数的作用是对对象本身做初始化工作,也就是给用户提供初始 化类中成员变量的一种方式,在类对象有虚表的情况下,构造函数还 对虚表进行初始化。 2、如果一个类中没有定义任何的构造函数,那么编译器只有在以下三种 情况,才会提供默认的构造函数: ◼ A、如果类有虚拟成员函数或者虚拟继承父类(即有虚拟基类)时; ◼ B、如果类的基类有构造函数(可以是用户定义的构造函数,或编译器提 供的默认构造函数); ◼ C、在类中的所有非静态的对象数据成员,它们对应的类中有构造函数 (可以是用户定义的构造函数,或编译器提供的默认构造函数)。 http://www.sunxin.org
C++的特性 构造函数 3、只要一个类定义了一个构造函数,不管这 个构造函数是否是带参数的构造函数, C++就不再提供默认的构造函数。也就是 说,如果为一个类定义了一个带参数的构 造函数,还想要无参数的构造函数,则必 须自己定义。 tp://www.sunxin.org
C++的特性 ◼构造函数 3、只要一个类定义了一个构造函数,不管这 个构造函数是否是带参数的构造函数, C++就不再提供默认的构造函数。也就是 说,如果为一个类定义了一个带参数的构 造函数,还想要无参数的构造函数,则必 须自己定义。 http://www.sunxin.org
C++的特性 ■析构函数 1、当一个对象生命周期结束时,其所占有的 内存空间就要被回收,这个工作就由析构 函数来完成。 2、析构函数是“反向”的构造函数,析构函 数不允许有返回值,更重要的是析构函数 不允许带参数,并且一个类中只能有一个 析构函数 tp://www.sunxin.org
C++的特性 ◼ 析构函数 1、当一个对象生命周期结束时,其所占有的 内存空间就要被回收,这个工作就由析构 函数来完成。 2、析构函数是“反向”的构造函数,析构函 数不允许有返回值,更重要的是析构函数 不允许带参数,并且一个类中只能有一个 析构函数。 http://www.sunxin.org