![](https://i-blog.csdnimg.cn/direct/f1a68de662a343759279a86cdd5278e3.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
深入探索C++的奥秘,从基础语法到高级特性,从性能优化到现代编程实践,致力于提供最全面、最深入的技术内容。
笑川 孙
用博客做笔记,记录我的想法。
展开
-
C++ | C++中的继承和组合:代码复用的艺术和应用
菱形继承是一种多继承的继承结构,其中一个类(最末派生类)继承自两个或多个类(中间派生类),而这些中间派生类又共同继承自同一个基类。这种结构在类图上看起来像一个菱形,因此得名。问题数据冗余:在没有虚拟继承的情况下,最末派生类会包含多个基类的副本,导致内存浪费。二义性:如果基类中有同名成员,最末派生类可能无法确定应该使用哪个基类的成员,导致二义性问题。通过在中间派生类中使用virtual关键字来指定基类的继承,可以解决菱形继承的问题。解决数据冗余。原创 2024-08-15 00:05:20 · 617 阅读 · 0 评论 -
C++ | 探索C++多态:虚函数与抽象类的奥秘
多态是面向对象编程的核心概念之一,它允许不同的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。多态不仅提高了代码的灵活性,还增强了可扩展性。原创 2024-08-15 13:49:50 · 258 阅读 · 0 评论 -
C++ | 掌握C++异常处理:从基础到自定义异常体系的全面指南
在代码的抛出规范声明、捕捉类型声明都只需要写基类对象类型,就可以智能多态地完成捕获。公司或项目一般都会利用此机制自定义一套异常体系,以规范异常的使用和管理。C++提供了一系列的标准异常类,以层次结构组织。用户无意的小错误也会造成程序结束运行。包括终止程序和返回错误码两种方式。过程繁琐,对用户专业要求高。异常是一种错误处理机制,通过。原创 2024-08-12 13:27:37 · 447 阅读 · 4 评论 -
C++ | C++11中的智能指针(附模拟实现):现代的C++内存管理
智能指针是C++内存管理的一大进步,它们提供了一种安全、高效的方式来自动管理动态分配的内存减少内存泄漏的风险,同时简化代码的复杂性。为了解决这一问题,C++11标准引入了智能指针,它们提供了自动内存管理的机制,极大地简化了资源管理的复杂性。auto_ptr 是c++ 98定义的智能指针模板,其定义了管理指针的对象,可以将new 获得(直接或间接)的地址赋给这种对象。它的核心思想是在对象构造时获取资源,并在对象析构时释放资源。这样,资源的管理和对象的生命周期紧密相连,确保了资源的正确管理。原创 2024-08-14 10:59:30 · 526 阅读 · 0 评论 -
C++ | C++11新特性解析:现代编程的里程碑
在2003年,C++标准委员会提交了一份技术勘误表(TC1),使得C++03成为C++98之后的最新标准。然而,C++03主要是对C++98标准中的漏洞进行修复,语言的核心部分并没有大的改动。因此,人们通常将这两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准经过了长达十年的发展,带来了约140个新特性和对C++03标准中约600个缺陷的修正。这使得C++11更像是从C++98/03中孕育出的一种新语言。原创 2024-08-14 16:49:58 · 615 阅读 · 0 评论 -
C++ | 深入理解C++中的特殊类设计和单例模式(懒汉模式、饿汉模式)
在C++编程中,类的设计往往需要满足特定的需求和约束。特殊类设计模式提供了一种方法来实现这些需求,确保类的使用既安全又高效。本文将探讨几种常见的特殊类设计方式,包括不可拷贝类、只能在堆上创建对象的类、只能在栈上创建对象的类、不可继承的类以及单例模式。原创 2024-08-12 19:14:37 · 499 阅读 · 2 评论 -
C++ | 深入剖析C++中的类型转换
类型转换是编程中常见的操作,它允许我们在不同的数据类型之间进行转换。在C++中,类型转换不仅关系到程序的正确性,还关系到程序的效率和安全性。本文将深入探讨C++中的类型转换机制,包括隐式类型转换、显式类型转换以及C++特有的强制类型转换。原创 2024-08-13 11:31:14 · 1358 阅读 · 0 评论 -
C++ | 深入理解C++的IO流:从控制台输出流到文件输出流的应用
流”是一个形象的比喻,描述了数据从一个地方流向另一个地方的过程。在C++中,流的概念被用来描述数据从外部输入设备(如键盘)流向内存,或者从内存流向外部输出设备(如显示器)的过程。在C++编程中,IO(输入/输出)流是处理数据流的基本方式,它允许我们以一种非常直观和高效的方式与外部世界进行交互。本文将带你深入了解C++的IO流,从基础的输入输出操作到高级的文件操作和。这些操作都依赖于缓冲区,它不仅简化了低级I/O的实现,还允许我们以“行”为单位进行数据处理。函数用于从指定的文件流中读取格式化的数据。原创 2024-08-13 21:48:03 · 576 阅读 · 0 评论