• 2024-07-04【C++学习笔记 8】C++中的析构函数
    构造函数一般用于创建实例或初始化,而析构(destructor)函数则是在销毁一个对象时使用的。析构函数可以用在释放任何内容或需要清理内存空间的场景。举个例子#include<iostream>classEntity{public: floatX,Y; Entity() { X=0.0f; Y=0.0f; std::cout<<
  • 2024-06-09C++入门7 类|构造函数|析构函数
    一,类型设计和实例化对象封装是面向对象程序设计最基本的特性, 把数据 (属性) 和函数 (操作) 合成一个整体,这在计算机世界中是用类与对象实现的。C++中类的设计1 class 类型名称2 {3 public:4 成员列表1;5 protected:6 成员列表2;7 private:8 成员列表3;
  • 2024-06-09避免内存泄漏:C++ 虚析构函数指南
    C++虚析构函数详解及示例在C++编程中,虚析构函数的使用至关重要,尤其在涉及多态时。以下将解释虚析构函数的作用、在基类中使用虚析构函数的必要性以及纯虚析构函数的定义。1.为什么需要虚析构函数?当基类的析构函数没有被声明为虚函数时,通过基类指针删除派生类对象会导致无
  • 2024-06-06c++“二纯” 纯虚函数和纯虚析构
    首先给出这样一段概念:在C++中,当基类包含纯虚函数时,这些纯虚函数在基类中不需要(也不能)有定义。但是,如果基类有一个纯虚析构函数(即析构函数被声明为纯虚函数),那么情况就有些特殊了。纯虚析构函数需要在基类中有声明,但通常也需要在类外提供一个定义(尽管这个定义通常只包含析构函数
  • 2024-06-01C++——类
    目录C++类访问权限虚函数1.定义底层实现2.构造函数/析构函数3.抽象类/纯虚函数常见问题1.虚函数不可以声明为inline吗2.构造函数为什么不能为虚函数?3.析构函数为什么可以为虚函数?4.构造函数和析构函数可以调用虚函数吗?5.虚析构函数的作用,父类的析构函数是否要设置为虚
  • 2024-05-31【C++修行之道】类和对象(二)类的6个默认成员函数、构造函数、析构函数
    目录一、类的6个默认成员函数二、构造函数2.1概念2.2特性2.2.5自动生成默认构造函数不进行显示定义的隐患:2.2.6自动生成的构造函数意义何在?两个栈实现一个队列2.2.7 无参的构造函数和全缺省的构造函数都称为默认构造函数,并且默认构造函数只能有一个。2.4 一般
  • 2024-05-30C++入门 类(构造函数 & 析构函数 & 显式调用)
    目录类的6个默认成员函数 构造函数特性函数名与类名相同无返回值(不需要写void) 无参构造函数和带参构造函数 构造函数可以重载编译器自动生成构造函数 默认构造函数 实践总结析构函数 显式调用隐式调用 特性 析构函数名是在类名前加字符~ 无参数无返
  • 2024-05-29c++ new delete
     =====================delete是我们c++中的关键字,我们都知道它和new是配套使用的,有new就有delete不然会存在内存泄漏的问题。但是我们使用过delete的同学可能会发现delete有两种形式,一种是delete[],那这两个有什么区别呢?1、delete释放new分配的单个对象指针指向的
  • 2024-05-28【c++基础(三)】类和对象中--构造和析构函数
    1.前言本章重点本篇文章着重讲解类中的两个默认函数,分别为:构造函数,析构函数这是c++六个默认成员函数中的两个(其他四个在后面章节讲解) 我们平时在写基础的数据机构时,例如栈和队列如果自己没有注意没有进行初始化,就有可能导致出错,同理,在写完代码后,忘记销毁开辟好
  • 2024-05-20C++ 异常处理注意事项总结
    C++异常处理注意事项总结:异常安全代码:编写异常安全的代码是至关重要的。这意味着你的代码应该在面对异常时能够正确地清理资源并维持程序状态。使用RAII(ResourceAcquisitionIsInitialization)技术可以帮助自动管理资源,减少内存泄漏的风险。使用noexcept:对于不会抛出异常
  • 2024-05-12Effective C++:2.构造、析构、赋值函数
    几乎每个class都会有一个或者多个构造函数,一个析构函数,一个copyassignment函数,因此有必要加深理解1.条款05:了解C++默默编写并调用哪些函数如果你没有生成一下函数,那么C++会在需要的时候(被调用)帮你自动生成这些函数:default构造函数copy构造函数default析构函数copyassign
  • 2024-05-03析构方法和垃圾回收器
    //垃圾回收机制://回收非托管资源--Windows窗口句柄,数据库的链接,GDI对象,独占文件锁等等对象//1.Dispose()需要实现IDisposable接口//2.Close()和Dispose()的区别--Close关闭对象,没有完全释放(可以再次使用)。Dispose完全释放(再次使用重新创建)。//析构方法//
  • 2024-04-22小项目
    搁置,暂时1.单例类封装网络请求类要做成一个单例类,这样方便在任何需要发送http请求的时候调用,我们先实现单例类,添加singleton.h实现如下关键词:单例的实践protect封装模版静态拷贝构造重载智能指针冲突析构函数的访问作用域头文件的包含单例类封装#include<
  • 2024-04-21《Effective C++》读书笔记
    《EffectiveC++》读书笔记之前看过一遍,不过草草了事。近日看了《深度探索C++对象模型》,想起《EffectiveC++》中的内容已经有些忘记了,所以重新温习一下。这篇笔记只挑选书中的一些重要内容进行记录。条款07:为多态基类声明virtual析构函数这一个条款几乎是面试中的高频问题,只需
  • 2024-04-15析构函数与 -O2 优化的一个问题
    在赋值时,我们需要先对原有对象调用析构函数。我的析构函数实现如下:~vector() { for(ptr*itr=begin_p;itr!=finish_p;itr++) { delete*itr; } delete[]begin_p; begin_p=nullptr;finish_p=nullptr;end_p=nullptr; }不使用-O2优化,程序运行正常,调用完析构函
  • 2024-04-10C++的保护类型还能这么玩
    将一个类的析构函数定义为 protected保护类型:这个类就不能在外部被析构,被定义。只能在它的子类,或者它的友元类里面去定义。定义了保护类型的析构函数,它的声明周期在子类或者友元类里面自动管理。最主要理解它的限制,理解生命周期就好。 定义为保护类型的好处:将一个类
  • 2024-03-31C++: 虚函数,一些可能被忽视的细节
    C++:虚函数,一些可能被忽视的细节引言:关于C++虚函数,对某些细节的理解不深入,可能导致我们的程序无法按预期结果运行,或是表明我们对其基本原理理解不够透彻。本文详细解答以下几个问题:实现多态,忘记写virtual会怎么样?虚函数的默认参数可以重载吗?纯虚函数真的不能有实现吗?析构函数可
  • 2024-03-30__cxa_pure_virtual报错(g++编译虚函数时)
    g++编译os的memory'时不知道为什么报错。尝试了很多方法(也可能搜错了)可以确定是纯虚函数出现了问题 复习一下虚函数的子类构造和析构的过程吧(一年过去了)允许派生类调用父类的同名函数而实现不同的功能,也叫动态联编。底层原理:虚函数表+虚函数表指针。每一个类都会对应一个
  • 2024-03-25C++类的构造函数和析构函数
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录1.构造函数(Constructor)2.析构函数(Destructor):3.构造函数与析构函数的调用顺序:4.注意事项:5.示例总结1.构造函数(Constructor)**定义:**构造函数是一种特殊的成员函数,用于在创建对象时初始化
  • 2024-03-24C++开发基础——类对象与构造析构
    一、基础概念类:用户自定义的数据类型。对象:类类型的变量,类的实例。类的成员:成员变量和成员函数。成员变量:类中定义的变量。成员函数:类中定义的函数。定义类的代码样例:classClassName{//members};//类定义的右花括号后面必须有分号类的访问修饰符:public、private
  • 2024-03-22面试题总结2
    面试题总结2C++thread_local详解thread_local是C++11引入的一个关键字,用于声明线程局部变量。线程局部变量是指每个线程都拥有独立副本的变量,互不影响。作用:提高线程安全性:避免多个线程共享同一变量带来的数据竞争问题。减少资源开销:每个线程只拥有自己的变量副本,无
  • 2024-03-17del析构函数
    del析构函数####__del__魔术方法(析构方法)''' 触发时机:当对象被内存回收的时候自动触发[1.页面执行完毕回收所有变量2.所有对象被del的时候]功能:对象使用完毕后资源回收 参数:一个self接受对象 返回值:无'''#(1)基本语法classLion(): def__init__(self,na
  • 2024-03-14虚析构函数
    在C++中,不能声明虚构造函数,但是可以声明虚析构函数。语法为virtual~类名();如果一个类的析构函数是虚函数,那么,由它派生而来的所有子类的析构函数也是虚函数。析构函数设置为虚函数之后,在使用指针引用时可以动态绑定,实现运行时的多态,保证使用基类类型的指针就能够调用
  • 2024-03-13详解c++多态中的析构与构造函数
    首先简单介绍一下多态。多态是面向对象编程中的概念,它允许我们使用基类类型的指针或引用来调用派生类对象的方法。C++中实现多态主要依靠虚函数和动态绑定。那怎么使用多态呢?基类指针或引用指向派生类对象。在我学习过程中,这些概念耳熟能详,但是为什么要有多态呢,先看下面这
  • 2024-03-12C++看程序写结果 虚函数、构造、析构、初始化列表
    虚函数、构造、析构、初始化列表#include<iostream>usingnamespacestd;classBase{public:Base(constchar*p_szName):m_szName(p_szName){cout<<"Base类构造:"<<m_szName<<","<<endl;}virtual~Base(){cout