当前课程知识点:C++语言程序设计基础 >  第2章 C++简单程序设计(一) >  C++语言概述 >  C++的特点和程序实例

返回《C++语言程序设计基础》慕课在线视频课程列表

C++的特点和程序实例在线视频

C++的特点和程序实例

C++的特点和程序实例

 

C++的产生和发展

l  从C语言发展演变而来,最初被称为"带类的C";

l  1983年正式取名为C++;

l  1998年11月被国际标准化组织(ISO)批准为国际标准;

l  2003年10月15日发布第2版C++标准ISO/IEC 14882:2003;

l  2011年8月12日ISO公布了第三版C++标准C++11,包含核心语言的新机能、扩展C++标准程序库。

l  2014年8月18日ISO公布了C++14,其正式名称为"International Standard ISO/IEC 14882:2014(E) Programming Language C++"。

l  C++14作为C++11的一个小扩展,主要提供漏洞修复和小的改进。

C++的特点

l  兼容C,支持面向过程的程序设计;

l  支持面向对象的方法;

l  支持泛型程序设计方法。

命名空间

避免命名冲突

std是C++标准库的命名空间( namespace)名

using namespace std表示打开std命名空间

2-1

//2_1.cpp

#include <iostream>

using namespace std;

int main() {

     cout << "Hello!" << endl;

     cout << "Welcome to c++!" << endl;

     return 0;

}

运行结果:

Hello!

Welcome to c++



下一节:C++字符集和词法记号

返回《C++语言程序设计基础》慕课在线视频列表

C++的特点和程序实例课程教案、知识点、字幕

大家好

欢迎继续学习C++语言程序设计

现在我们来简单介绍一下

C++语言本身的特点

以及它的发展和起源

C++语言

最早是从C语言发展而来的

所以一开始

它就叫做带类的C

也就是说它最初是尽可能的继承

兼容了C语言的所有语法

然后在这个基础上

对类提供了支持

后来就被美国国家标准给定为了

C++语言

1983年 它正式取名为C++

到了1998年11月

就被国际标准化组ISO

批准为国际标准

2003年10月15日

发布了第二版的C++标准

那么到2011年8月12号

ISO又公布了第三版的C++标准

简称C++11

那么C++11标准呢

包含了核心语言机制的新的机能而且扩展了C++的标准库程序

那么到了2014年的8月18号

ISO又公布了C++14

C++14是个简称

它的正式名称是

International StandISO/IEC

148822014(E)Programming LanguageC++

那么C++14

其实只是在C++11的基础上

有一些小的扩展

主要是提供漏洞的修复

和小的改进

在我们这门课里

包括了C++新标准的

一些新的特性

那么如果说你选用的编译器

还不支持新标准的话

也没有关系

我们的大多数例题 习题

都还是跟以前版本的课程

和教材是一样的

在你旧的编译器上

大多数例题 习题

都是可以编译运行的

但是在课程内容中

我们将一些新标准中的特性

也介绍给大家

那么C++的特点是什么呢

首先它在开始阶段

它的初衷是尽量全面的兼容C

那么在这个基础上呢

它又支持面向对象的程序设计

所以由于

它对C语言的这种兼容性

使得C++就不是一个

完全的面向对象的程序语言

也就是说你用C++

不仅可以写面向对象的程序

也可以写面向过程的程序

那么到底你的程序

是需要面向过程的形式

还是面向对象的形式

那么可能你可以自己来决定

但是大多数情况下

显然面向对象的程序

它的封装性 它的可重用性

安全性都更好一些

所以建议大家既然学习C++

还是按面向对象的思想来写程序

下面我们就来看

这样一个程序实例

这个例题功能非常简单

我们首先看一下它的运行结果

它的效果就是输出两行字符串

到显示器上

一个Hello 一个Welcome

再看看这个程序里面

是怎么样实现这个功能的

好 看这个地方有一个main

后面跟一对圆小括号

再跟一对大括号

这个叫做主函数

也就是程序的主要模块

那看这个main后面

有一对圆括号

如果你要这个函数执行一些功能

有的函数就要你提供一些

供它计算所用的数据

这些叫做参数

在第三章我们会详细地讲

函数的参数

那么对于简单程序来说

只有一个主模块

也就是只有一个主函数的时候

这个主函数往往是不带参数的

那这个时候一对空的圆括号

还是要写在这儿的

再往后看 就是一对大括号

这一对大括号

是包围函数体的大括号

也就是说

这一对大括号之间的语句

我们叫这一行一行的这些文字

叫做语句

这些大括号之间的这些语句呢

就是我们写下的这个解决问题的

方法和步骤

给计算机去执行的

现在我们来看

我们是怎么样解决

将Hello和Welcome这两行文字

送到显示器上

我们是怎么解决这件事情的

那我们可以看到在前面有

cout这样一个名字出现

这是一个什么呢

这就是预定义好的类的对象

也就是说像显示器送数据

送信息这样的功能

是特别常用的功能

那么常用的功能

而且你自己写起来又挺麻烦的

这样编译器就带了它的函数库

类库 在这个类库里面

就有对于这种常用的

又比较麻烦的功能

它都跟你预定义好了

直接拿来用就行了

那么关于输入

输出的很多有用的功能

在随编译器带的这个库里面

都专门有输入输出的类

也就是每个输入输出相关的类

都集成了一组常用的

输入输出的功能

那么这个cout就是预定义好的

输出流类的一个对象

这一些我们在后面第11章

还会详细给大家讲

在第二章

也就是这一章的后面的内容

也会再给大家看很多例子

都是有信息的输入输出的

现在我们就记住cout

它是一个对象名

就像你有名字 我有名字

我们自然界中每一个对象

都有名字一样

这个专门负责像显示器送数据的

这样一个预定义好的对象

它也有个名字就叫cout

然后cout后面有一个

像两个连续的小于号

这样的符号

注意它不是一个书名号

是两个连续的小于号

这是什么呢

这是一个运算符

就像我们用加法

减法这种符号一样

这也是一个计算的符号

这是一个什么计算呢

这是一个流插入运算

也就是说要将后面这一串字符串

插入到输出流里面去

什么是输出流呢

在C1 C++语言看来

数据的输出就是信息的流动

输出流就是你程序空间

到外部设备之间的

这么一个信息流动的通道

我们需要向外部设备

送信息的时候

就要先建立一个能够流通信息的

这么一个通道

我们叫它一个输出流

而像显示器送信息的

这个流通道呢

是默认就打开好了的

负责向这个流里面

送数据的就是cout这个对象

它送数据这个动作

就是用这个连续两个小于号

这样的符号

叫做插入运算符来实现的

好 这个意思就是说

cout它要用这种插入运算符

将Hello这个字符串

送到显示器上去

送完了这一串以后呢

它又送一回

就会送了个什么

送了一个名字是endl

这是一个预定义好的符号

表示行结束

你送这么一个符号出去以后呢

这一行就结束了

我们看在运行结果的这个地方

Hello之后就换行了

更多的信息会在下一行再输出

那么再看下一行

做的也是类似的事情

又用了cout

这回像输出流送了Welcome

to c++ 还有惊叹号

这一串字符

那又像显示器送了一串字符

然后再次换行

最后有一句叫return0

return 返回

这个return0是什么意思呢

我们现在可以把它暂时记住它

在主函数的最后

都要写一个return0的

实际上这个return语句的作用是

返回这个函数的计算结果

如果这个函数是做一个数学计算

那它肯定是有计算结果的

这个计算结果为什么要返回呢

就是谁说

它要用这个函数作计算的

这个结果就会返回给谁

也就是说当你要用这个函数

完成一个任务的时候

你要调用它

调用完了结果呢

就返回给调用者

那么谁是主函数的调用者呢

应该运行环境

或者操作系统是主函数的调用者

但是我们主函数一般没有什么

数据需要返回给调用者

当然你有数据需要返回的时候

可以return一个有意义的数据

没什么需要返回的

默认情况下

我们都要应该return一个0

那么再往前看呢

在main前面有一个int

这是什么意思呢

这就是说规定

这个函数的计算结果它的返回值

应该是一个证书类型

int是整数integer的缩写

后面我们马上就要讲数据类型的

大家就会看到

规定着函数的返回类型

必须是一个整数值

那所以你没什么值可以返回

就返回个0

0也是个整数

这个就符合语法要求了

就是里int main圆括号空的

这个大家记住

主函数的开头就这样写法就行了然后呢

主函数要完成的所有的功能

依次写在这一对大括号里面

那么现在完成两件事情

依次把两个字符串

送到显示器上了

那最后呢 主函数的最后一句

一般来说都应该是个return0

在目前这个时候

你就这样记住

学着这样仿照着写就可以了

那以后我们会看到

主函数可不可以返回

一个不是0的有意义的数据呢

可以

主函数后面这对圆括号里面

可不可以不是空的

而是有参数的呢 也可以

以后都会见到这样的例子的

好 那么这样

貌似这个程序的功能就很完备了

但是仍然有问题

有什么问题呢

这个cout是个什么 谁能知道呢

你说那是C++语法规定的

它库里应该预先定义好的

一个对象

但是我们使用任何名字之前

都应该有个交代 有个说明的

比如说我们人与人见面的时候

那么总要两个人互相介绍一下

同样我们要用一个负责

向显示器输出的这样一个

有这样功能的一个对象

这个对象也应该在被使用之前

交代一下自己 它是什么

为什么要做这样的交代呢

因为编译器在做翻译的时候

它得知道这个名字代表着什么

在程序里面

我们叫做要声明一下

要做个declaration 要做个声明

那大家就有疑问了 怎么办呢

大家看这个程序的最开始的一行include #include iostream

进括号里面 iossteam

这是什么呢 这是包含

include是包含嘛

在这个位置

包含一个文件进来

iosstream是一个文本

文件的名字

它就是用来包括在

别的程序头上的

所以叫做头文件

它里面的内容是符合C++语法的

它的形式是纯文本的

就像我们写C++程序一样

在这个iostream这个文件里面呢

给出了你想使用的

预定义好的这些输入输出功能的相应地声明 相应地说明

所以你不用管应该如何去声明

这个cout

你只要把与它相关的

iostream这个文件 头文件

include进来就可以了

include它是一个编译预处理命令

所谓编译预处理命令呢

就是说在编译器开始做语法检查开始编译你这段时间之前

它首先要按照你的include指令

到约定的目录下

去找到iosteam这个文件

把这个文件的全部内容

复制粘贴到include语句

所在的这个位置

如果你想自己手动复制粘贴一下

看看是不是同样的效果

你也会发现效果是一样的

好 这个呢我们就明白了

经过这样一个include

这里面这个文件的文本里面

就包含了对cout的必要的声明

这个时候我们可以用cout了

是不是

那么为什么中间还有一行

using namespace std

这是什么内容呢

这个为什么这样呢

因为那么多的名字怕重名

我们说了C++标准库里面

预定义好了很多有用的功能模块

类 预定义的对象

函数等等这些

他们都是有名字的

那里面一个那么庞大的库

已经定义了那么多名字了

我们自己要写程序

一会我们看到

我们要定义变量名

以后还要定义函数名等等这些

我们自己要定义一些名字

那么名字会不会冲突呢

一想到起名字

大家肯定相信

你起名字难以避免冲突

但是在程序里面

如果你真的重名了

那是会引起错误的 不能重名

怎么解决这个问题呢

所有这个标准库里面的名字

它有一个共同的命名空间

这个命名空间的名字叫std

那么也就是说

我正经来用cout的时候

应该是std 然后后面有双冒号

表示作用域 分辨符

然后cout 有名有姓一块用

那如果说嫌麻烦 怕麻烦

我用每个名字

前面都得挂一个std

这个前缀太罗嗦了 那怎么办

你可以统一声明一下 好

现在打开std这个命名空间

using namespace std

这个命名空间一打开以后

这个命名空间里面所有名字

可以不带std这个姓了

直接叫名字就可以了

最开始还有上面双斜杠

2_1.cpp 这是什么东西

这是一个注释行

凡是以双斜线开头的行

都是注释行

编译器会忽略它的

把它当空白符

那么人看它会有用

会看到这个程序的原程序的名字

叫2_1.cpp 就这个意思

下面呢 我在这个编译环境中

给大家运行这个程序看一下

大家现在看到的呢

这个是

Visual studio Express2013的

这个编译环境

如果大家也愿意用这个

Visual studio来做开发环境的话

可以去官网上去下载

Express版都是免费的

好 那我们来看

这就是刚才那个程序

我要用这个呢 教一下大家

怎么编译和执行在这个环境中

那么要编译呢

去点这个菜单

底下可以有生成

那么可以生成解决方案

可以重新生成解决方案

那么可以在这点生成

实际上它就连编译带连接一起

就完成了 这个我已经编译过了

也可以单独编译 点这个编译

那么就只是单独编译一下

单独编译完了以后没有连接

它是没有生成可运行的程序的

那好 现在我们来看

如果说你想观察这个程序的

一步步的执行过程

你可以用什么呢

可以用单步执行

这有个调试菜单

调试菜单底下呢

大家看有启动调试

启动调试它就一次性

把程序都执行完

这个 它先编译了一下

就是以前编译的过期了

先编译了一下

好 启动调试

一下把程序都执行完

然后就回到这儿来了

我们也看不见执行结果了

这个时候

我说我想看一下执行结果

别那么快那个窗户就晃没了

怎么办呢

可以在这一句前面点一下

它有个原点了

在return这个地方点一下

就即将结束

即将return的时候点一下

这就是一个什么呢

设了一个断点

那你再去调试它

选这个启东调试菜单下

或者来看这个F5

你可以用F5

我按一下键盘上的F5

它同样开始执行了

那现在呢 我们来看

在这个控制台窗口里面

我们就看到两行信息现实在这儿

还来得及看

因为程序没有结束

我再一次按F5的话

它就程序执行完了

那么我们就看到了这个程序

它的运行结果是这个样子

如果说你这个程序里面有错

比如说我把这个分号删掉了

把这个分号删掉了

那我再去编一个它

比如说重新生成解决方案

也就重新要编译连接

那这个地方报错了

大家看在底下这个错误信息

这个地方就报错了

它就不给你声称可执行文件了

因为你有语法错

那么它指出这个错误

所在的地方了 我点这个错误号

那么它就停到错误所在这一行了

说这个 在这个标志符

这个名字cout之前

在这个名字cout之前缺少分号

确实这有个分号没写

那我就把这个分号呢

加在这个末尾的地方

这个就是西文的分号

加在末尾这个地方

然后再重新生成

现在就没有错误了

所以大家看

它生成了一个exe文件

就成功了 我们就可以执行了

C++语言程序设计基础课程列表:

第1章 绪论

-导学

--第1章导学

-计算机系统简介

--计算机系统简介

--计算机系统简介 测试题

-计算机语言和程序设计方法的发展

--计算机语言和程序设计方法的发展

--计算机语言和程序设计方法的发展 测试题

-面向对象的基本概念

--面向对象的基本概念

--面向对象的基本概念 测试题

-程序的开发过程

--程序的开发过程

--程序的开发过程 测试题

-信息的表示和储存

--计算机中的信息与存储单位

--计算机的数字系统

--数据的编码表示

--信息的表示和储存 测试题

-实验指导

--实验一:VS开发环境介绍

第2章 C++简单程序设计(一)

-导学

--第二章导学

-C++语言概述

--C++的特点和程序实例

--C++字符集和词法记号

--C++语言概述 测试题

-基本数据类型、常量、变量

--基本数据类型、常量、变量

--程序举例

--基本数据类型、常量、变量 测试题

-运算与表达式

--算术运算与赋值运算

--逗号运算、关系运算、逻辑运算和条件运算

--Sizeof运算、位运算

--运算优先级、类型转换

--运算与表达式 测试题

-实验二:简单程序设计(上)

--实验二:简单程序设计(上)

第2章 C++简单程序设计(二)

-数据的输入和输出

--数据的输入和输出

--数据的输入和输出 测试题

-选择结构

--if语句

--switch语句

--选择结构 测试题

-循环结构

--循环结构——while语句

--do-while语句

--for语句

--嵌套的控制结构、其他控制语句

--循环结构 测试题

-自定义类型

--自定义类型

--自定义类型

-第2章小结

--第二章小结

-实验二:C++简单程序设计(下)

--实验二C++简单程序设计(下)

第3章 函数

-导学

--导学

-函数定义

--函数定义

--函数定义 测试题

-函数调用

--函数调用(例3-1)

--例3-2

--例3-3

--例3-4

--例3-5

--例3-6

--函数调用 测试题

-嵌套与递归

--函数的嵌套调用(例3-7)

--函数的递归调用(例3-8)

--例3-9

--例3-10

--嵌套与递归 测试题

-函数的参数传递

--函数的参数传递

--函数的参数传递 测试题

-引用类型

--引用类型(例3-11)

--引用类型 测试题

-含有可变参数的函数

--含有可变参数的函数

--含有可变参数的函数 测试题

-内联函数

--内联函数(例3-14)

--内联函数 测试题

-constexpr函数

--constexpr函数

--CONSTEXPR函数课后习题

-带默认参数值的函数

--带默认参数值的函数

--默认参数值例(3-15)

--带默认参数值的函数 测试题

-函数重载

--函数重载(例3-16)

--函数重载 测试题

-C++系统函数

--C++系统函数(例3-17)

--C++系统函数习题

-第3章小结

--第三章小结

-实验三(上)函数的应用

--实验三(上)函数的应用

-实验三(下)函数的应用

--实验三(下)函数的应用

第4章 类与对象

-导学

--导学

-面向对象程序的基本特点

--面向对象程序的基本特点

--面向对象程序的基本特点 测试题

-类和对象

--类和对象的定义

--类和对象的程序举例

--类和对象 测试题

-构造函数

--构造函数基本概念

--构造函数例题(1)——例4-1

--构造函数例题(2)——例4-2

--委托构造函数

--复制构造函数

--复制构造函数调用举例

--构造函数 测试题

-析构函数

--析构函数

--析构函数 测试题

-类的组合

--类的组合

--类的组合程序举例

--前向引用声明

--类的组合 测试题

-UML简介

--UML简介

--UML简介课后习题

-结构体与联合体

--结构体(例4-7)

--联合体(例4-8)

--结构体与联合体 测试题

-枚举类

--枚举类

--枚举类 测试题

-第4章小结

--第四章小结

-实验四(上)

--实验四(上)

-实验四(下)

--实验四(下)

第5章 数据的共享与保护

-导学

--导学

-标识符的作用域与可见性

--标识符的作用域与可见性

--标识符的作用域与可见性 测试题

-对象的生存期

--对象的生存期

--对象的生存期 测试题

-类的静态成员

--静态数据成员(例5-4)

--静态函数成员(例5-5)

--类的静态成员 测试题

-类的友元

--类的友元(例5-6)

--类的友元 测试题

-共享数据的保护

--共享数据的保护(例5-7)

--共享数据的保护 测试题

-多文件结构和预编译命令

--多文件结构和预编译命令(例5-10)

--多文件结构和预编译命令 测试题

-第5章小结

--小结

-实验五

--实验五

第6章 数组、指针与字符串(一)

-导学

--导学

-数组的定义与初始化

--数组的定义与使用

--数组的储存与初始化

--一维数组应用举例

--数组的定义与初始化 测试题

-数组作为函数的参数

--数组作为函数参数(例6-2)

--数组作为函数的参数 测试题

-对象数组

--对象数组

--对象数组 测试题

-基于范围的for循环

--基于范围的for循环

-指针的定义和运算

--指针的概念、定义和指针运算

--指针的初始化和赋值

--指针的算术运算、关系运算

--指针的定义和运算 测试题

-综合实例

--综合实例

-实验六(上)

--实验六上

第6章 数组、指针与字符串(二)

-指针与数组

--用指针访问数组元素

--指针数组

--指针与数组 测试题

-指针与函数

--以指针作为函数参数

--指针类型的函数

--指向函数的指针

--指针与函数 测试题

-对象指针

--对象指针

--对象指针 测试题

-动态内存分配

--动态分配与释放内存

--申请和释放动态数组(一)

--申请和释放动态数组(二)

--动态内存分配 测试题

-智能指针

--智能指针

-vector对象

--vector对象

--vector对象 测试题

-对象复制与移动

--深层复制与浅层复制

--移动构造

--对象复制与移动 测试题

-字符串

--C风格字符串

--string类

--字符串 测试题

-第6章小结

--第六章小结

-综合实例

--综合实例

-实验六(下)

--实验六(下)

C++的特点和程序实例笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。