C++小白Python选手2小时入门C++

学习链接:C++入门/2小时从C到C++快速入门(2018,C++教程)

C++在C语言的基础上增加了面向对象和通用算法语言特征。

  1. C++头文件不必是.h结尾,C++头文件举例:cmath、cstdio
  2. 注释:单行//、多行/**/
  3. 为了防止名字冲突(同名),引入名字空间namespace,::运算符限定某个名字属于哪个名字空间。不指定时为全局名字空间。
  4. 输入输出流库(头文件iostream),cout <<和cin >>分别表示标准流输出输入流对象。标准库中的名字都属于标准名字空间std。endl表示换行。
  5. 变量“即用即定义”,且可用表达式初始化。
  6. 程序块{}内部作用域可定义域外部作用域同名的变量,在该块里就隐藏了外部变量。
  7. for循环语句可以定义局部变量。
  8. 访问和内部作用域变量同名的全局变量,用全局作用域限定::
  9. 引用类型:一个变量是另一个变量的别名。引用变量经常用作函数形参,对形参的修改就是对实参的修改。&a表示取a的地址。*x表示简引用运算符。当实参占用内存较大时,用引用代替传值(需要复制)可提高效率,如果不希望因此无意中修改实参,可以用const修饰符。
  10. 对于不包含循环的简单参数,用inline关键字声明内联函数,编译器将内联函数调用用其代码展开,称为“内联展开”,避免函数调用开销,提高程序执行效率。
  11. try-catch处理异常。
  12. 默认形参一律靠右。
  13. 函数重载:允许函数重名,但要求形参不一样。不能根据返回类型区分同名函数。
  14. 运算符重载
  15. template函数,template
  16. 动态内存分配,关键字new和delete可以对类对象调用初始化构造函数或销毁析构函数(virtual ~f())。
  17. 类struct,包含数据和函数方法用于访问或修改类变量(对象)。*this自引用。
  18. 构造函数和析构函数。
    • 构造函数是和类名同名且没有返回类型的函数,在定义对象时会自动被调用,而不需要再单独调用专门的初始化函数如init(类似python的init函数)。
    • 析构函数是在类对象销毁时被自动调用,用于释放该对象占用的资源,如释放占用的内存,关闭打开的文件。
  19. 控制访问、类接口。将关键字struct换成class。
    • class定义的类的成员默认都是private,外部函数无法通过类对象成员或类成员函数访问。
    • 接口:public的公开成员(一般是成员函数)称为这个类的对外接口,外部函数只能通过对这些接口访问类对象。private等非public的包含内部细节,不对外公开,从而可以封装保护类对象。
  20. 拷贝:拷贝构造函数、赋值运算符。硬拷贝,m和s指向同一块内存。
    • 拷贝构造函数:定义一个类对象时用同类型的另外对象初始化。如student m(s)
    • 赋值运算符:一个对象赋值给另一个对象m=s
  21. 类体外定义方法(成员函数),必须在类定义中声明,类体外要有类作用域::,否则就是全局外部函数了
  22. 类模板:将一个类变成“类模板”或“模板类”
  23. typedef 类型别名:typedef int INT
  24. string 类模板Vector
  25. Inheritance继承(Derivation派生):一个派生类,从1个或多个父类/基类继承,即继承父类的属性和行为,但也有自己的特有属性和行为。派生类的构造函数只能描述自己的成员和其直接基类的初始化,不能去初始化基类的成员。
  26. 虚函数Virtual Functions和多态性。派生类的指针可以自动转化为基类指针,用一个指向基类的指针分别指向基类对象和派生类对,并2次调用
  27. 多重继承
  28. 纯虚函数和抽象类。函数体=0的虚函数称为“纯虚函数”。包含纯虚函数的类称为“抽象类”。
    • 抽象类不能实例化,不能定义抽象类的对象(变量)。
    • 从抽象类派生的类型如果没有继承实现所有的纯虚函数,则仍然是“抽象类”。

相关推荐

  1. C++Python选手2小时入门C++

    2024-07-15 13:36:05       30 阅读
  2. c++的教程7:保留小数输出

    2024-07-15 13:36:05       31 阅读
  3. C++入门小结

    2024-07-15 13:36:05       25 阅读
  4. Python案例题目,入门

    2024-07-15 13:36:05       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 13:36:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 13:36:05       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 13:36:05       58 阅读
  4. Python语言-面向对象

    2024-07-15 13:36:05       69 阅读

热门阅读

  1. 树莓派pico入坑笔记,at24c256使用

    2024-07-15 13:36:05       21 阅读
  2. Postcat使用全解析

    2024-07-15 13:36:05       25 阅读
  3. Mojo 编程语言入门:AI开发者的新宠儿

    2024-07-15 13:36:05       25 阅读
  4. 721. 账户合并

    2024-07-15 13:36:05       22 阅读
  5. ZZULIOJ1073: 再谈鸡兔同笼问题

    2024-07-15 13:36:05       21 阅读
  6. git统计工程某目录代码总行数

    2024-07-15 13:36:05       21 阅读
  7. 力扣15. 三数之和

    2024-07-15 13:36:05       21 阅读
  8. 概率论原理精解【3】

    2024-07-15 13:36:05       19 阅读