C++ 学习之路
文章平均质量分 90
C++ 基础学习
zqixiao_09
这个作者很懒,什么都没留下…
展开
-
C++ 标准函数库 —— 文件的输入输出 (Input/Output with files)
C++ 通过以下几个类支持文件的输入输出:ofstream: 写操作(输出)的文件类 (由ostream引申而来)ifstream: 读操作(输入)的文件类(由istream引申而来)fstream: 可同时读写操作的文件类 (由iostream引申而来)打开文件(Open a file)对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,也就是说打开一原创 2016-05-23 19:11:31 · 7734 阅读 · 0 评论 -
C++ 高级篇(五)—— 预处理指令
预处理指令是我们写在程序代码中的给预处理器(preprocessor)的 命令,而不是程序本身的语句。预处理器在我们编译一个C++程序时由编译器自动执行,它负责控制对程序代码的第一次验证和消化。所有这些指令必须写在单独的一行中,它们不需要加结尾的分号;。#define在这个教程的开头我们已经提到了一种预处理指令: #define ,可以被用来生成宏定义常量(defined co原创 2016-05-23 19:11:07 · 5813 阅读 · 3 评论 -
C++ 高级篇(四)—— 类型转换高级
目前为止,我们一直使用传统的类型转换符来进行简单对象的类型转换。例如,要把一个double类型的浮点型数字转换为int 的整型数字,我们是这样做的:int i;double d;i = (int) d;或者i = int (d);这样做对基本数据类型时没问题的,因为基本数据类型的转换已经有标准的定义。同样的操作也可以被在类或类的指针上,因此以下例子中的写法也是没有问题的:原创 2016-05-23 19:10:43 · 1693 阅读 · 0 评论 -
C++ 高级篇(三)—— 出错处理
本节介绍的出错处理是ANSI-C++ 标准引入的新功能。如果你使用的C++ 编译器不兼容这个标准,则你可能无法使用这些功能。在编程过程中,很多时候我们是无法确定一段代码是否总是能够正常工作的,或者因为程序访问了并不存在的资源,或者由于一些变量超出了预期的范围,等等。这些情况我们统称为出错(例外),C++ 新近引入的三种操作符能够帮助我们处理这些出错情况: try, throw 和 ca原创 2016-05-23 19:10:16 · 1896 阅读 · 1 评论 -
C++ 高级篇(二)—— 名空间 (Namespaces)
通过使用名空间(Namespaces)我们可以将一组全局范围有效的类、对象或函数组织到一个名字下面。换种说法,就是它将全局范围分割成许多子域范围,每个子域范围叫做一个名空间(namespaces).使用名空间的格式是: namespace identifier { namespace-body }这里identifier 是一个有效的标示符,namespace-b原创 2016-05-22 12:45:51 · 3393 阅读 · 0 评论 -
C++ 高级篇(一)—— 模板(Templates)
模板(Templates)是ANSI-C++ 标准中新引入的概念。如果你使用的 C++ 编译器不符合这个标准,则你很可能不能使用模板。 函数模板( Function templates)模板(Templates)使得我们可以生成通用的函数,这些函数能够接受任意数据类型的参数,可返回任意类型的值,而不需要对所有可能的数据类型进行函数重载。这在一定程度上实现了宏(macro)原创 2016-05-22 12:44:23 · 50563 阅读 · 7 评论 -
C++ 面向对象(四)—— 多态 (Polymorphism)
为了能更好的理解本节内容,你需要清楚的知道怎样使用指针pointers 和类之间的继承 inheritance between classes。建议如果你觉得以下这些表达式比较生疏的的话, 请复习指定的章节:int a::b(c) {}; // 类Classes (Section 4.1)a->b // 指针和对象pointers and objects原创 2016-05-22 12:41:42 · 4001 阅读 · 0 评论 -
C++ 面向对象(三)—— 类之间的关系
友元函数(Friend functions)在前面的章节中我们已经看到了对class的不同成员存在3个层次的内部保护:public, protected 和 private。在成员为 protected 和 private的情况下,它们不能够被从所在的class以外的部分引用。然而,这个规则可以通过在一个class中使用关键字friend来绕过,这样我们可以允许一个外部函数获得访问class的原创 2016-05-22 12:39:54 · 5080 阅读 · 0 评论 -
C++ 面向对象(二)—— 操作符重载
C++ 实现了在类(class)之间使用语言标准操作符,而不只是在基本数据类型之间使用。例如:int a, b, c;a = b + c;是有效操作,因为加号两边的变量都是基本数据类型。然而,我们是否可以进行下面的操作就不是那么显而易见了(它实际上是正确的):struct { char product [50]; float price; } a, b, c;a = b + c原创 2016-05-22 12:38:09 · 3230 阅读 · 0 评论 -
C++ 面向对象(一)—— 类(Classes)
类(class)是一种将数据和函数组织在同一个结构里的逻辑方法。定义类的关键字为class ,其功能与C语言中的struct类似,不同之处是class可以包含函数,而不像struct只能包含数据元素。类定义的形式是: class class_name { permission_label_1: member1; permis原创 2016-05-22 12:35:07 · 39494 阅读 · 5 评论 -
C++ 高级数据类型(六)—— 自定义数据类型
前面我们已经看到过一种用户(程序员)定义的数据类型:结构。除此之外,还有一些其它类型的用户自定义数据类型: 定义自己的数据类型 (typedef)C++ 允许我们在现有数据类型的基础上定义我们自己的数据类型。我们将用关键字typedef来实现这种定义,它的形式是:typedef existing_type new_type_name;这里 existing_type 是C+原创 2016-05-22 12:32:36 · 3631 阅读 · 0 评论 -
C++ 高级数据类型(五)—— 数据结构
一个数据结构是组合到同一定义下的一组不同类型的数据,各个数据类型的长度可能不同。它的形式是:struct model_name {type1 element1;type2 element2;type3 element3;..} object_name;这里model_name 是一个这个结构类型的模块名称。object_name 为可选参数,是一个或多个具体原创 2016-05-22 12:31:35 · 6471 阅读 · 0 评论 -
C++ 高级数据类型(四)—— 动态内存分配
到目前为止,我们的程序中我们只用了声明变量、数组和其他对象(objects)所必需的内存空间,这些内存空间的大小都在程序执行之前就已经确定了。但如果我们需要内存大小为一个变量,其数值只有在程序运行时 (runtime)才能确定,例如有些情况下我们需要根据用户输入来决定必需的内存空间,那么我们该怎么办呢?答案是动态内存分配(dynamic memory),为此C++ 集成了操作符new 和del原创 2016-05-22 12:30:18 · 3914 阅读 · 0 评论 -
C++ 高级数据类型(三)—— 指针
我们已经明白变量其实是可以由标识来存取的内存单元。但这些变量实际上是存储在内存中具体的位置上的。对我们的程序来说,计算机内存只是一串连续的单字节单元(1byte cell),即最小数据单位,每一个单元有一个唯一地址。计算机内存就好像城市中的街道。在一条街上,所有的房子被顺序编号,每所房子有唯一编号。因此如果我们说芝麻街27号,我们很容易找到它,因为只有一所房子会是这个编号,而且我们知道它会在2原创 2016-05-22 12:27:24 · 8199 阅读 · 0 评论 -
C++ 高级数据类型(二)—— 字符序列
前面基础知识部分讲C++变量类型的时候,我们已经提到过C++的标准函数库提供了一个string类来支持对字符串的操作。然而,字符串实际就是一串连续的字符序列,所以我们也可以用简单的字符数组来表示它。例如,下面这个数组:char jenny [20];是一个可以存储最多20个字符类型数据的数组。你可以把它想象成:理论上这数组可以存储长度为20的字符序列,但是它也可以存储比这短原创 2016-05-22 12:25:52 · 2387 阅读 · 0 评论 -
C++ 高级数据类型(一)—— 数组
数组(Arrays) 是在内存中连续存储的一组同种数据类型的元素(变量),每一数组有一个唯一名称,通过在名称后面加索引(index)的方式可以引用它的每一个元素。也就是说,例如我们有5个整型数值需要存储,但我们不需要定义5个不同的变量名称,而是用一个数组(array)来存储这5个不同的数值。注意数组中的元素必须是同一数据类型的,在这个例子中为整型(int)。例如一个存储5个整数叫做bill原创 2016-05-22 12:24:32 · 6260 阅读 · 0 评论 -
C++ 控制结构和函数(三)—— 函数II(Functions II)
参数按数值传递和按地址传递(Arguments passed by value and by reference)到目前为止,我们看到的所有函数中,传递到函数中的参数全部是按数值传递的(by value)。也就是说,当我们调用一个带有参数的函数时,我们传递到函数中的是变量的数值而不是变量本身。 例如,假设我们用下面的代码调用我们的第一个函数addition :int x=5, y=3,原创 2016-05-22 12:08:04 · 1963 阅读 · 2 评论 -
C++ 控制结构和函数(二) —— 函数I(Functions I)
通过使用函数(functions)我们可以把我们的程序以更模块化的形式组织起来,从而利用C++所能提供的所有结构化编程的潜力。一个函数(function)是一个可以从程序其它地方调用执行的语句块。以下是它的格式: type name ( argument1, argument2, ...) statement 这里:type 是函数返回的数据的类原创 2016-05-22 12:06:12 · 1712 阅读 · 0 评论 -
C++ 控制结构和函数(一) —— 控制结构
一个程序的语句往往并不仅限于线性顺序结构。在程序的执行过程中它可能被分成两支执行,可能重复某些语句,也可能根据一些判断结果而执行不同的语句。因此C++ 提供一些控制结构语句 (control structures) 来实现这些执行顺序。为了介绍程序的执行顺序,我们需要先介绍一个新概念:语句块(block of instructions)。一个语句块(A block of instruction原创 2016-05-22 12:03:00 · 2059 阅读 · 0 评论 -
C++基础知识(五)—— 基本输入输出
控制台(console)是电脑的最基本交互接口,通常包括键盘(keyboard)和屏幕(screen)。键盘通常为标准输入设备,而 屏幕为标准输出设备。在C++的iostream函数库中,一个程序的标准输入输出操作依靠两种数据流:cin 给输入使用和cout给输出使用。另外,cerr和clog也已经被实现――它们是两种特殊设计的数据流专门用来显示出错信息。它们可以被重新定向到标准输出设备或到一原创 2016-05-22 12:00:14 · 3319 阅读 · 0 评论 -
C++基础知识(四)—— 操作符/运算符
前面已经学习了变量和常量,我们可以开始对它们进行操作,这就要用到C++的操作符。有些语言,很多操作符都是一些关键字, 比如add, equals等等。C++的操作符主要是由符号组成的。这些符号不在字母表中,但是在所有键盘上都可以找到。这个特点使得C++程序更简洁,也更国际化。运算符是C++语言的基础,所以非常重要。 你不需要背下所有这一小节的内容,这些细节知识仅供你以后需要时参考 。原创 2016-05-22 11:58:00 · 18537 阅读 · 0 评论 -
C++基础知识(三)—— 常量
一个常量(constant)是一个有固定值的表达式。字(Literals)字是用来在程序源码中表达特定的值。在前面的内容中我们已经用了很多的字来给变量赋予特定的值。例如:a = 5;这句代码中5就是一个字常量。字常量(literal constant)可以被分为整数(Integer Numbers), 浮点数(Floating-Point Numbe原创 2016-05-22 11:55:41 · 2083 阅读 · 0 评论 -
C++基础知识(二)—— 变量和数据类型
你可能觉得这个“Hellow World”程序用处不大。我们写了好几行代码,编译,然后执行生成的程序只是为了在屏幕上看到一句话。的确,我们直接在屏幕上打出这句话会更快。但是编程并不仅限于在屏幕上打出文字这么简单的工作。为了能够进一步写出可以执行更有用的任务的程序,我们需要引入变量(variable)这个的概念。 让我们设想这样一个例子,我要求你在脑子里记住5这个数字,然后再记住2这个原创 2016-05-22 11:47:16 · 8124 阅读 · 0 评论 -
C++基础知识(一)—— C++程序结构
下面我们从一个最简单的程序入手看一个C++程序的组成结构。// my first program in C++#include using namespace std;int main() { cout return 0;}Hello World! 上面左侧显示了我们的第一个程序的源代码,代码文件名称为原创 2016-05-22 11:30:56 · 10387 阅读 · 2 评论 -
C++学习基础篇 —— 引用(&)的用法和应用
一、引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符&引用名=目标变量名; 【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名 说明: (1)&在此不是求地址运算,而是起标识作用。 (2)类型标识符是指目标变量的类型。 (3)声明引用时,必须同时对其进原创 2016-05-21 02:01:58 · 8254 阅读 · 0 评论 -
C++ 学习基础篇(一)—— C++与C 的区别
程序的学习学无止境,只掌握一门语言是远远不够的,现在我们开始C++的学习之路,下面先看下C++ 与C 的区别一、C++概述1、发展历史 1980年,Bjarne Stroustrup博士开始着手创建一种模拟语言,能够具有面向对象的程序设计特色。在当时,面向对象编程还是一个比较新的理念,Stroustrup博士并不是从头开始设计新语言,而是在C语言的基础上进行创建。这就是C++原创 2016-04-24 20:36:30 · 78645 阅读 · 13 评论