随笔分类 - C / C++常见问题
摘要:多态即基类(父类)指针指向(引用)子类对象的时候,基类指针调用子类重写了的基类同名虚函数时,会根据基类指针具体所指向的子类对象而表现出不同的行为。 所以,多态的条件: 1)基类指针指向了子类对象; 2)在子类中对同名基类虚函数进行了重写; 3)上述1)中的基类指针调用了该基类虚函数中被上述 2)重写
阅读全文
摘要:关于,有了头文件为什么还要引入名字空间? 主要是解决实体如类、变量、函数等的命名冲突问题。在简单的程序设计中,只要人们小心注意,可以争取不发生错误。但是,一个大型的应用软件,往往不是由一个人独立完成的,而是由若干人合作完成的,不同的人分别完成不同的部分,最后组合成一个完整的程序。假如不同的人分别定义
阅读全文
摘要:GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标
阅读全文
摘要:流的状态可以通过检测ios_base类中的位来判断。 1)当输入流遇到文件尾时, eofbit位将被设置。 可以调用函数 cin.eof()来判断是否到达文件末尾 在cin中遇到问价末尾时返回true,否则返回false。 2)当在流中发生格式错误时,failbit位将被设置。 例如程序要求输入整数
阅读全文
摘要:从给定输入流stream读取最多count个对象到数组buffer中(相当于以对每个对象调用count次fgetc),把buffer当作unsigned char数组并顺序保存结果。流的文件位置指示器前进读取的字节数。 若出现错误,则流的文件位置指示器的位置不确定。若没有完整地读入最后一个元素,则其
阅读全文
摘要:在C语言中,操作文件之前必须先打开文件;所谓“打开文件”,就是让程序和文件建立连接的过程。 打开文件之后,程序可以得到文件的相关信息,例如大小、类型、权限、创建者、更新时间等。在后续读写文件的过程中,程序还可以记录当前读写到了哪个位置,下次可以在此基础上继续操作。 使用 <stdio.h> 头文件中
阅读全文
摘要:核心概念:所有的流对象都有错误状态位,表示流的状态。 所有流对象都包含一组充当标志的位。这些标志表示流的当前状态。 文件状态位标志 位 描述 ios::eofbit 在遇到输入流结束时设置。 ios::failbit 当尝试的操作失败时设置。 ios::hardfail 当发生不可恢复的错误时设置。
阅读全文
摘要:操作符 描述 Dec 以十进制格式显示后续数组 endl 写入新行并冲刷输出流 fixed 使用固定点表示法表示浮点数 flush 冲刷输出流 hex 以十六进制输入或输出 left 左对齐输出 oct 以八进制输入或输出 right 右对齐 scientific 使用科学表示法表示浮点数 setf
阅读全文
摘要:源码示例: #include <iostream>#include <vector>#include <algorithm> using namespace std; class IsEven{public: bool operator()(int x) { return x % 2 == 0; }
阅读全文
摘要:C++允许程序员重新定义标准运算符在与类对象一起使用时的工作方式。 1.重载赋值运算符 为了解决由对象的按成员赋值引起的问题,就需要修改赋值运算符的行为,以便在将其应用于具有指针成员的类的对象时,执行按成员赋值之外的其他操作。实际上,就是要提供用于该类的对象的赋值运算符的不同版本。所以,这样做也可以
阅读全文
摘要:需要动态分配内存的构造函数,都需要程序员自己编写复制构造函数,如果使用默认构造函数将会出现问题。 程序员可以定义一个类的复制构造函数。程序员定义的复制构造函数必须有一个形参,它是对同一个类的引用。示例原型: NumberArray :: NumberArray(NumberArray &obj) {
阅读全文
摘要:友元是一个不属于类成员的函数,但是它由权访问该类的私有成员。 私有成员对于类外部的所有程序部分而言都是隐藏的,访问它们需要调用一个公共成员函数,但有时也可能会需要创建该规则的一项例外。友元函数是一个不属于类成员的函数,但它可以访问该类的私有成员。换句话说,友元函数被视为好像是该类的一个成员。友元函数
阅读全文
摘要:如果一个成员变量被声明为static,那么该类的所有对象都可以访问该变量;如果一个成员函数被声明为static,那么它可以在类的任何实例被定义之前被调用。 默认情况下,每个类的对象(类的一个实例)都有它自己的类的成员变量副本。一个对象的成员变量与同一个类的其他对象的成员变量是独立分开并且有区别的。
阅读全文
摘要:默认情况下,编译器为类的每个成员函数提供了一个隐式形参,该形参指向被调用的成员函数所在的对象。该隐式形参成为this。常量成员函数是一个不会修改调用它的对象的函数。 1.this指针 隐式对象形参的实际形参就是调用成员函数的对象的地址。因此在类的成员函数中也可以通过使用( *this )表达式来访问
阅读全文
摘要:标准模板库包含一个成为矢量(vector)的数据类型。它与一位数组类似,但与标准数组相比有一些优点。 标准模板库(STL)是程序员定义的数据类型和算法的集合,可以供C++程序使用。这些数据类型和算法不是C++语言的一部分,但它们的创建是对内置数据类型的有益补充。如果打算继续在计算机领域学习,那么就应
阅读全文
摘要:typedef声明允许把别名与简单的或结构化的数据结构相关联 typedef声明允许程序员为现有数据类型创建别名或同义词,这可以是简单的数据类型,例如int; 也可以是更复杂的数据类型,例如数组。该声明的最简单的形式如下: typedef <现有数据类型> <别名> 例如,以下语句将examScor
阅读全文
摘要:基于范围的for循环是一种可以针对数组中每个元素迭代一次的循环。每次进行该循环迭代时,就会将一个元素从数组复制带变量。基于范围的for循环是C++ 11中的新功能。 C++ 11提供了一个特殊版本的for循环,在很多情况下,它都可以简化数组的处理,这就是基于范围的for循环(Rang-Based f
阅读全文
摘要:无论正在执行的是哪个函数或者控制机制,exit()函数都将导致程序终止。 当遇到main函数中的return 语句时,C++程序将停止执行。 其他函数结束时,程序并不会停止。程序的控制将返回到函数调用之后的位置。然而,有时候会出现一些非常少见的请款,使得程序有必要在main以外的函数中终止。要实现这
阅读全文
摘要:枚举数据类型是一种由程序员定义的数据类型。其合法值时与它们关联的一组命名整数常量。 它之所以被称为枚举类型,是因为命名常量是作为数据类型定义的一部分而枚举或列出的。以下是枚举类型声明的示例: enum Roster {Tom, Sharon, Bill, Teresa, John}; 该语句将创建一
阅读全文
摘要:字符函数 描述 isalpha 如果参数是字母表中的字母,则返回true,否则返回false。 isalnum 如果参数是字母表中的字母或者数字,则返回true,否则返回false。 isdigit 如果参数是从0到9的数字,则返回true,否则返回false。 islower 如果参数是小写字母,
阅读全文

浙公网安备 33010602011771号