C++ 简介
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。
C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
面向对象程序设计
C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:
- 封装
- 抽象
- 继承
- 多态
标准库
标准的 C++ 由三个重要部分组成:
- 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
- C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
- 标准模板库(STL),提供了大量的方法,用于操作数据结构等。
C++ 程序结构
#include <iostream>
using namespace std;
// main() 是程序开始执行的地方
int main()
{
cout << "Hello World"; // 输出 Hello World
return 0;
}
- 头文件 <iostream>。
- 下一行 using namespace std; 告诉编译器使用 std 命名空间。
- 下一行 int main() 是主函数,程序从这里开始执行。
- 下一行 cout << "Hello World"; 会在屏幕上显示消息 "Hello World"。
命名空间
同一个作用域中不允许出现函数名相同或者和是变量名相同的情况!
定义: namespace 命名空间的名字
{
变量; 函数;
};
访问: 命名空间名字::变量/函数名();
或者使用 using namespace 名字;
引用类型
就是给已经有的变量起个别名!它和变量指的是同一块内存空间!
定义格式:
Int a=10; int &b = a;
引用和指针的区别?
- 引用一定要进行初始化;指针可以不初始化;
- 引用只能初始化一次;指针是可以改变指向;使用引用比指针安全
- 指针需要开空间,引用不需要
函数重载
函数名相同,功能相似、函数的参数不同、与返回值无关(个数、类型、顺序)的一组函数互为重载!
总结函数重载的原理:
G++编译之后,会对函数名进行重名名,不同的函数名对应的函数在内存中的地址就是不一样的,调用的时候自然就执行不同的函数!
参数默认值
参数默认值:就是在定义函数的时候,参数给默认值!
注意事项:默认值给的顺序是从右向左;在调用函数的时候,给参数的顺序是从左向右!
特别是在函数重载的时候,一定要注意参数默认值可能会产生“二义性“!!!
动态内存分配
new运算符去开空间
Delete运算符去释放
面向对象编程中类和对象
把属性和行为整合在一起来描述一类事物的自定义的数据类型,在c++中把这种数据类型称为类!
类:关键字 class
C++中的结构体和C++中类的区别?
- 定义变量时初始化的方式不一样
- 结构体变量通过.可以直接访问数据成员;得出结构体中成员都是public权限,类类型的变量通过.方式获取数据成员:提示是private,没法访问;得到类中成员默认是private权限