- 博客(16)
- 收藏
- 关注
原创 C++模板
函数模板的定义与普通函数类似,只是需要在函数名前面添加模板参数列表。模板参数列表通常使用或来表示,其中T是类型参数。函数模板是C++泛型编程的核心,允许编写类型无关的通用代码。通过模板,可以实现高效、灵活、类型安全的代码。理解函数模板的工作原理及其局限性,能帮助你更好地利用这一强大工具编写高质量的C++程序。类模板的定义类似于函数模板,只是模板参数应用于整个类。你可以使用或来定义一个类模板。类模板的成员函数可以直接在类内定义,这与普通类的成员函数定义方式相同。
2024-08-15 08:51:12
968
原创 C++封装
浅拷贝和深拷贝的选择取决于具体的应用场景。在需要节省内存并确保多个对象可以共享资源的情况下,浅拷贝是一个合适的选择。然而,在需要确保对象独立性和避免内存管理问题的情况下,深拷贝则更加安全和稳妥。函数名:析构函数的名称必须与类名相同,且在前面加上波浪符号。返回值:析构函数没有返回值,不能写void。参数:析构函数不接受参数,因此不能进行重载。数量:每个类只能有一个析构函数,不能定义多个。// 析构函数。
2024-08-15 08:49:27
980
原创 C++继承
菱形继承问题:由于派生类从多个路径继承自同一个基类,导致该基类的成员出现多个拷贝。解决方法包括使用虚继承或明确指定使用哪个基类的成员。V形继承问题:虽然没有共同的祖先类,但由于基类中可能存在同名成员,也会引发二义性问题。解决方法主要是通过类域明确指定使用哪个基类的成员。抽象类是一个包含至少一个纯虚函数的类。它不能被直接实例化,只能作为基类存在。纯虚函数的定义方式是将函数声明后加上= 0public:// 纯虚函数函数重载是同一作用域内对函数名的不同定义,主要用于处理不同的参数。函数重写。
2024-08-14 20:36:51
681
原创 C++引用
引用是一个变量的别名,一旦绑定到某个变量后就不能再改变其绑定关系。引用的使用方式与普通变量相同,但在声明时必须初始化,并且不能通过引用修改绑定的对象的类型。C++ 允许void*指针,但不允许void类型的引用。C++ 允许使用指针引用(例如int *&),但不允许声明引用指针(例如int &*数组指针和数组引用在 C++ 中的用法:数组指针用于指向二维数组的行。数组引用用于引用整个数组,保持数组的大小信息。引用与指针各有优缺点,选择合适的方式可以提高程序效率。避免返回局部变量的引用。
2024-08-14 20:35:09
366
原创 C++命名空间
命名空间用于组织代码并防止命名冲突。通过将代码划分到不同的命名空间,可以避免在不同库或模块中使用相同名称的变量、函数等导致的冲突。
2024-08-09 11:52:57
235
原创 进程的基本概念
进程定义进程是一段可执行代码,并放在内存中运行。进程号进程号是计算机识别进程的唯一标识。可以使用 pid_t getpid(void); 函数获取进程号。每个进程的进程号是由系统随机分配的。父进程号每个进程都有一个父进程号,表示创建该进程的父进程。可以使用 pid_t getppid(void); 函数获取父进程号。进程进程属于计算机资源管理的最小单位。一个程序至少包括一个进程。进程组(Process Group)定义:进程组是一组相关进程的集合,它们通常是由同一作业启动的,或者有某种
2024-08-06 11:10:20
1000
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人