- 关键词
一、C++概述
- 1.C++简介
- 2.C++起源
- 3.C++标准
- 3.C++为什么会成功
二、C++程序
- 1.简单的c++程序
- 2.面向过程:程序=数据结构+算法
- 3.面向对象:程序 = 对象 + 对象 + …
- 复习关键词
关键词
预编译指令,包含指令,标准命名空间,插入运算符,面向对象三大特性
一、C++概述 1.C++简介
c++是对C的扩展,是c语言的超集。
C++以C语言为基础并能兼容C语言。
任何有效c程序都是有效的c++程序。
c++程序也可以使用已有的c程序库。
c++和c语言一样也是在贝尔实验室诞生的,Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)在20世纪80年代在这里开发了这种语言。
Stroustrup关心的是让c++更有用。
Stroustrup之所以在c的基础上创建c++,是因为c语言简洁、适合系统编程、使用广泛且与UNIX *** 作系统联系紧密。
1998年,制定出第一个国际标准。
它不仅描述了已有的c++特性,还对语言进行了扩展,添加了异常、运行阶段类型识别(RTTI)、模板和标准模板库(STL)。
这个标准就是我们经常所说的c++98。
2003年,发布了c++标准第二版(IOS/IEC 14882:2003),这一版本对第一版修订了一些错误,但并没有改变语言特性,因此c++98表示c++98/c++2003。
2011年,批准了新标准ISO/IEC 14882:2011,该标准被称为c++11,c++11也新增了许多特性。
此标准为现在所用标准。
c++的出现并不是去替代c,而是对c的扩展,所以在c++中既可以使用c++新特性,并且可以使用c的过程式思维来编写程序。
对于传统的结构化语言,我们向来没有太多的疑惑,函数调用那么自然而明显,只是从程序的某一个地点调到另一个地点去执行。
但是对于面向对象(OOP)语言,我们疑惑就会很多。
其原因就是c++编译器为我们程序员做了太多隐藏的工作:构造函数,析构函数、虚函数、继承、多态…有时候它为我们合成出一些额外的函数,有时候它又偷偷在我们写的函数里,放进更多的 *** 作。
有时候也会给我们的对象里放进一些奇妙的东西,使得我们sizeof的时候结果可我们预期不一样。
二、C++程序 1.简单的c++程序
代码如下(示例):
#include
using namespace std;
int main()
{
cout << "hello world" << endl;
return 0;
}
分析:
-
#include< iostream >; 预编译指令,引入头文件iostream。
以“#”开头以与 C ++语句相区别,#include< iostream >,这不是 C++的语句,而是 C++的处理指令。
include < iostream >是个“包含指令”,它的作用是将文件“ iostream ”的内容包含到该命令所在的程序文件中,代替该指令。
文件 iostream 的作用是向程序提供输人或输出时所需要的一些信息。
由于这类文件都放在程序单元的开头,所以称为“头文件( header file )。
在程序进行编译时,先对所有的预处理命令进行处理,在进行整体编译。 -
using namespace std; 使用标准命名空间
C++标准库中的类和函数是在命名空间 std 中声明的,因此程序中如果需要用到 C++标准库(此时需要用 #include 指令),
就需要用“ using namespace std ;”作声明,表示要用到命名空间 sd 中的内容 -
每一个 C++程序都必须有一个 main函数。
main前面的int的作用是声明函数的类型为整型(标准 C++规定main函数必須声明为 int型,即此主函数返回一个整型的函数值)。return 0的作用是向 *** 作系统返回一个零值。
如果程序不能正常执行,则会自动向 *** 作系统返回一个非零值,一般为-1
-
cout << “hello world”<< endl; 和printf功能一样,输出字符串”hello wrold”
cout是c++中的标准输出流,endl是输出换行并刷新缓冲区。
“ cout ”和”<<”实现输出的语句简称为 cout 语句 。实际上cout 是 C++系统定义的对象名,称为输出流对象。
关于对象和输出流对象的概念将在后面详细介绍。
“<<"是“插入运算符”,与 cout 配合使用,在本例中它的作用是将运算符“<<”右侧双撇号内的字符串插入到输出的队列 cout 中(输出的队列也称作“输出流"), C++系统将输出流 cout 的内容输出到系统指定的设备(一般为显示器)中。
<<左移运算符重载实现拼接字符串的功能
endl是输出换行并刷新缓冲区。 -
c++头文件为什么没有.h?
头文件类型 | 约定 | 示例 | 说明 |
---|---|---|---|
c++旧式风格 | 以.h结尾 | iostream.h | c++程序可用 |
c++新式风格 | 无扩展名 | iostream | c++程序可用,使用namespace std |
面向过程编程思想的核心:功能分解,自顶向下
通过分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
程序=数据结构+算法
面向对象编程思想的核心:应对变化,提高复用。
在面向对象中,算法与数据结构被看做是一个整体,称作对象,现实世界中任何类的对象都具有一定的属性和 *** 作,
也总能用数据结构与算法两者合一地来描述,所以可以用下面的等式来定义对象和程序:
对象 = 算法 + 数据结构
程序 = 对象 + 对象 + ……
面向对象三大特性
- 封装
把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象 *** 作,对不可信的进行信息隐藏。
类将成员变量和成员函数封装在类的内部,根据需要设置访问权限,通过成员函数管理内部状态。 - 继承
继承所表达的是类之间相关的关系,这种关系使得对象可以继承另外一类对象的特征和能力。
继承的作用:避免公用代码的重复开发,减少代码和数据冗余。 - 多态
多态性可以简单地概括为“一个接口,多种方法”,字面意思为多种形态。程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。
预编译指令,包含指令,标准命名空间,插入运算符,面向对象三大特性
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)