11. 模板 模板就是简历通用的模具,大大提高 复用性。 1.1 概念 特点: 模板不可以直接使用,只是一个框架 模板的通用并不是万能的 1.2 函数模板 泛型编程,主要利用的技术 是模板 两种模板:函数模板和类模板 1.2.1 函数模板用法 建立一个通用函数,返回类型和形参类型可以不具体制定,用一个虚拟的类型来代表 123456789101112131415161718192021 2024-11-27 c++ > c++ 黑马 #c++
10. 文件操作 程序运行时产生的数据都属于时数据,程序一旦运行结束都会被释放 通过文件可以将数据持久化 C++中对文件操作需要包含头文件fstream 文件类型分为两种: 1.文本文件·文件以文本的ASCII码形式存储在计算机中 2.二进制文件-文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们 操作文件的三大类: 1,ofstream:写操作 2.ifstream:读操作 3.fs 2024-11-27 c++ > c++ 黑马 #c++
9. 类和对象 c++面向对象三大特性:封装、继承、多态 4.1 封装 将属性和行为作为一个整体 加以权限限制 访问权限 公共权限 public 类内可访问,类外可以访问 保护权限 protected 类内可访问,类外不可访问 儿子可以访问 父亲保护内容 私有权限 private 类内可访问,类外不可访问 儿子不可以访问父亲私有内容 4.1.1 pstruct 和 class 2024-11-27 c++ > c++ 黑马 #c++
8. 函数提高 3.1 函数默认参数 函数的形参列表中的形参是可以有默认值的 语法: 返回值类型 函数名 (参数=默认值){} 3.2 函数占位参数 占位参数可以有默认参数 1234567891011121314151617#include <iostream> using namespace std; void func(int a, int) { cout <& 2024-11-27 c++ > c++ 黑马 #c++
7. 引用 给变量起一个别名 引用必须初始化,初始化后不可以改变 12int a = 10; int &b = a; 2.1 引用做函数参数 函数传参时,可以利用引用让形参修饰实参,可以简化指针修改实参 2.2 引用做函数返回值 不要返回局部变量引用 用法:函数调用作为左值 2.3 引用的本质 在c++内部实现是一个指针常量 int &ref = a int* const 2024-11-27 c++ > c++ 黑马 #c++
6. 内存分区模型 内存分为四个区域:代码区、全局区、栈区、堆区 1.1 程序运行前 代码区是共享的、只读的,存放CPU的机器指令 全局区存放全局变量和静态变量以及常量(字符串常量、全局常量),该区域的数据在程序结束后由操作系统释放 1.2 程序运行后 栈区:由编译器自动分配释放,存放函数的参数值(形参),局部变量等 不要返回局部变量的地址 12345678910111213141516#include 2024-11-27 c++ > c++ 黑马 #c++
5. 结构体 5.1 定义 1234567891011struct student { string name; int age; int score; }s3; int main() { student s1; student s2 = {"李四", 19, 80}; } 5.2 结构体 2024-11-27 c++ > c++ 黑马 #c++
4. 指针 4.1 空指针 初始化 int *p = NULL; 空指针不可访问 4.2 野指针 指向非法的内存空间 4.3 const修饰指针 常量指针:指针的指向可以更改,但是指针指向的值不能更改。 1const int* p = &a 指针常量:指针指向的值可以更改,但是指针的指向不能更改。 1int* const p = &a 指针的指向和指向的值都不能修改 1co 2024-11-27 c++ > c++ 黑马 #c++
3. 数组 3.1 一维数组 int score[10]; int score[10] = {10,11}; int score[] = {10, 11}; 根据数组名可以获取数组的长度和首地址 2024-11-27 c++ > c++ 黑马 #c++