C ++历史 C ++编程语言的历史可以追溯到1979年,当时Bjarne的Stroustrup的在做工作,为他的博士学位 论文。其中语言Stroustrup的有机会工作,是一个叫Simula的语言,它顾名思义是主要设计用于模拟一种语言。该西穆拉67语言 -这是斯特劳斯一起工作的变种-被认为是第一语言,支持面向对象的编程范式。Stroustrup的发现,这种模式是软件开发非常有用的,但是西穆拉语言是实际使用过于
C ++语言常见问题解答 什么是C ++?C ++是一种编程语言。它的字面意思是“增加C”,以反映其性质C语言的演变。是否有必要已经知道学习C ++之前,另一种编程语言?不必要。C ++是在表达一个简单明了的语言。这是事实,用C ++编写了一段代码可以通过编程比其他一些语言更隐蔽一点的陌生人可以看出,由于大量使用特殊字符({} [] * |!...),但一旦有人知道这些字符的含义也可以是更原理图和比更依赖于英文单词等语
使用文件输入/输出 C ++提供了以下类来执行字符/来自文件的输出和输入: ofstream: Stream类文件上写ifstream: Stream类从文件中读取fstream: Stream类读取和从/写入文件。这些类被直接或间接地从类派生istream和ostream。我们已经使用的对象,其类型为这些类:cin是类的一个对象istream,并cout为类的一个对象ostream。因此,我们已
预处理指令 预处理指令包括在(由井号前面的程序代码行#)。这些行不是程序语句,但是指令的预处理器。预处理器检查代码之前的代码的实际编译开始,并解决了所有这些指令之前,通过定期报表实际产生的任何代码。这些预处理指令只跨越一个单一的代码行延伸。只要一个换行符被发现,预处理指令是结束。别无分号(;)在预处理指令结束的预期。预处理程序指令可通过多条线路延长的唯一方法是通过一个反斜杠在该行的末尾换行符前面的(\
例外 异常提供了一种通过将控制转到称为特殊函数来在程序特殊情况下(如运行时错误)反应处理。捕获异常,部分代码被置于异常检查。这是通过封闭的代码部分以完成试块。当一个特殊情况是块内出现,抛出一个异常,控制到异常处理程序转移。如果没有抛出异常,代码继续正常进行,所有的处理程序被忽略。一个例外是通过使用引发throw关键字从内部try块。异常处理程序声明为关键字catch,必须立即后放置try
类型转换 隐式转换当值被复制到一个兼容类型的隐式转换自动执行。例如:123short a=2000;int b;b=a; 这里,值a是从提升short到int,而不需要任何显式操作者。这被称为一个标准转换。标准转换的影响基本数据类型,并允许数值类型之间的转换(short至int,int到float,double到int
多态性 得到任何深入本章之前,你应该有指针和类继承的一个正确的认识。如果你真的不知道的任何下列用语的含义,你应该检查表明部分:声明:解释了:int A::b(int c) { }类a->b数据结构class A: public B {};友谊和继承指针的基类其中一个类继承的主要特点是一个指向派生类的类型是兼
友谊和继承 好友功能原则上,一类的private和protected成员不能从它们所声明的同一类外部访问。然而,这条规则并不适用于“朋友”。朋友们都与声明的函数或类friend关键字。如果它被宣布为一个非成员函数可以访问类的private和protected成员的朋友那类。由包括在类中该外部函数的声明,并与关键字前述它做friend:1234567
特别会员 [注:本章要求的正确理解动态分配的内存 ] 特殊的成员函数是被隐式定义为在某些情况下类成员的成员函数。有六种:成员函数类典型形式C:默认构造方法C::C();析构函数C::~C();复制构造C::C (const C&);拷贝赋值C& operator= (const C&);移动构造C
类(II) 重载运营商类,基本上,定义新类型的C ++代码中使用。和类型在C ++不仅通过代码结构和分配方式进行交互。他们还通过运营商的方式进行交互。例如,采取基本类型如下操作:12int a, b, c;a = b + c; 这里,一个基本类型(不同的变量int)被施加在加法运算,然后赋值运算符。对于一个基本算术式,这样的
类(I) 类是一个扩大的概念的数据结构:类似的数据结构,它们可以包含数据成员,但是它们也可以包含作为成员。一个对象是类的一个实例。在变量而言,一个类将是类型,并且一个目的将是可变的。班使用的是关键字定义class或关键字struct,语法如下:CLASS_NAME类{ access_specifier_1: member1中; access_spe
编译器 遵循这些教程所需要的工具是一台电脑和一个编译器工具链能够编译C ++代码,并建立在其上运行的程序。C ++是一个已经太多多年来发展一种语言,这些教程解释最近添加的语言许多功能。因此,为了正确地遵循教程,需要一个最近的编译器。它应支持(即使只是部分)由2011标准中引入的功能。许多编译器厂商支持的新功能有不同程度。请参见本页面底部的已知支持所需要的功能,一些编译器。其中有些是免费的!
其他数据类型 类型别名(类型定义/使用)A型别名是一个不同的名称,通过该类型可以被识别。在C ++中,任何有效类型可以别名,以便它可以与不同的识别符来表示。在C ++中,有两种语法创建这样类型别名:第一,从C语言继承,采用typedef关键字: 其中,是任意类型的,无论是基本或化合物,并具有给定的类型的新名称的标识符。 例如:typedef existing_type new_type_na
数据结构 数据结构一个数据结构是一组一个名称组合在一起的数据元素。这些数据元素被称为成员,可以有不同的类型和不同的长度。:数据结构,可以在C使用下面的语法声明++ 哪里是结构类型的名称,可以是具有这种结构的类型的对象了一套有效的标识符。内牙套,存在与数据成员的列表,每一个与一类和有效的标识符作为其名称指定。 例如:struct type_name {member_type1 member_n
动态内存 在前面的章节中看到的节目,所有的存储需求被定义所需的变量程序执行之前确定。但是可能存在的程序的存储器需求可以只在运行期间被确定的情况。例如,当所需要的内存取决于用户输入。在这种情况下,程序需要动态分配内存,为此,C ++语言集成了运营商new和delete。运营商新的和新的[]动态内存是使用运营商分配new。new后面是数据类型说明和,如果需要一个以上的元素的序列,这些括号内的数目
指针 在前面的章节中,变量被解释为可以通过其标识符(其名称)来访问在计算机的存储单元。通过这种方式,该程序不需要关心在存储器中的数据的物理地址; 它只是使用每当它需要参考变量的标识符。为一个C ++程序,一个计算机的存储器是像存储单元的继承,在大小每一个字节,并且每一个独特的地址。这些单字节的存储单元是有序的方式,允许数据表示大于一个字节大的占据具有连续地址的存储器单元。这种方式,每个单
字符序列 本string类在前面的章节中已经作了简要介绍。这是一个非常强大的类来处理和操作字符的字符串。然而,由于字符串是,事实上,字符序列,我们也可以代表他们作为字符类型的元素的纯阵列。例如,以下的数组: char foo [20]; 是,最多可存储类型的20元素的数组char。它可以表示为: 因此,该阵列具有
阵列 阵列是一系列可以通过添加一个索引的唯一标识符被单独引用的同一类型放置在连续的存储单元的元件。这意味着,例如,类型的五个值int可以声明为阵列无需声明5个不同的变量(每个都有其自己的标识符)。相反,使用数组,这五个int值被存储在连续的存储单元,并且所有五个可使用相同的标识符被访问,以适当的指数。例如,含有式5的整数值的数组int称为foo:如可以表示 ,其中每个空面板表
名称的知名度 命名实体,如变量,函数和复合型需要C ++在使用前进行声明。在这个声明发生在程序的点影响其知名度:任何块之外声明实体具有全球范围内,这意味着它的名字是有效的代码的任何地方。而一个实体块内声明,如函数或选择性声明,具有阻止范围,并且仅在它被声明的特定块中可见的,但不是外面。与块作用域的变量称为局部变量。例如,在一个函数的主体声明的变量是一个局部变量延伸直到所述功能的结束(即,
重载和模板 在C ++中,两种不同的功能可以有,如果他们的参数不同,相同的名称; 或者是因为它们具有不同数目的参数,或者是因为它们的任何参数的是不同的类型。例如:12345678910111213141516171819202122// overloading functions#include using namespa