C++学习笔记
笔记中的图片来自《C++ Primer Plus》,B站C++教程:C++ Primer Plus(第六版)教程(持续更新) (公众号:嵌入式技术公开课),B站小甲鱼,以及程序截图。
一、C++基础知识
1.面向对象(OO)和面向对象编程(OOP)
Object–Oriented Object Oriented Programming
2.C++是C的超集
(1).也就是说所有有效的C语言程序都是有效的C++程序。
(2).C++是在C语言的基础上融合了OOP、泛型编程和传统的过程性方法,OOP赋予了C++将问题所涉及的概念联系起来的能力,C部分则赋予了C++紧密联系硬件的能力。
3.类和对象
(1)类(class):
用户定义的一种数据类型。OOP将数据和方法合并为类定义。类是一种抽象的数据类型。
类描述了一种数据类型的全部属性(包括可使用它执行的所有操作),对象是根据这些描述创建的实体。
(2)对象(object):
对象是类的实例化。通过类定义的变量就是变量,拥有类的成员变量和成员函数。
类只是一个模板,编译后不占用内存空间,所以在定义类时不能对成员变量进行初始化,因为没有地方存储数据。只有在创建对象以后才会给成员变量分配内存,这个时候就可以赋值了。
4.泛型编程
(1)通俗理解:
泛型编程是在编程中暂时不指定数据类型,而用参数代替,在调用时在明确参数类型。
(2)百科简介:
为了实现C++的STL(标准模板库)。其语言支持机制就是模板(Templates)。模板的精神其实很简单:参数化类型。换句话说,把一个原本特定于某个类型的算法或类当中的类型信息抽掉,抽出来做成模板参数T。
(4)泛型独立于特定数据类型。
5.C++源代码的后缀名
绝大数情况下,使用.cpp后缀名
6.C++编程步骤
从源代码到可执行文件需要经过编译和链接两个步骤
7.C++程序
(1).头文件:
包含文件,也称头文件。
C++中头文件没有拓展名,部分C语言头文件在C++中被重新命名,去掉.h后缀,并在文件名称前加上c。
(2).函数头:
int main()是函数头,{}内的内容为函数体。
空括号()或者(void)表示函数不接受任何信息。
(3).注释:
C++能够识别C的注释。
//单行注释
/**/多行注释
(4).编译指令:
#include
using namespace std;(名称空间编译指令)
使用cout和cin输入输出时必须加上iostream,其中的io是输入(input)和输出(output)。
名称空间用于区分不同版本。
使用using namespace std;后使用cout和cin时不用std::。
要使用iostream中其他名称时要添加到using列表中。
(5).输入输出:
cout输出:
cout<<string;
cout的对象属性包括对象运算符<<,将其右侧的字符串插入到输出流中。
<<表示将该字符串发送给cout,cout在多个连用时不会自动换行。
cin输出:
cin>>变量名
(6).控制符:
对cout来说有特殊含义的特殊符号称为控制符。
如endl类似于C语言中的换行符,表示该行已经结束将光标移动至下一行开头。
换行符\n在C++中仍然适用,适用\n代替控制符endl可减少输入量cin输出
(7).C++中的命名规则:
空格不能放在元素或名称中间。
C语言中的换行符,表示该行已经结束将光标移动至下一行开头。
换行符\n在C++中仍然适用,适用\n代替控制符endl可减少输入量cin输出
(7).C++中的命名规则:
空格不能放在元素或名称中间。