• 2024-11-0802_muduo_base1
    5.3At0mic源码剖析为什么需要原子性操作:在多线程环境下,一次简单的加法操作:先从内存读取数据到寄存器,然后进行加法,最后再把数据写回内存。这是由于多线程环境下,在寄存器上的加法到写回内存这个动作不是当成一个动作执行的,而是被划分了为三个动作,导致问题。解决方案:第一个就是上
  • 2024-10-06C++ 对象模型
    对象的内存布局非虚函数类对象对于不包含虚函数的类,对象的内存布局相对简单,其成员变量按照声明的顺序依次存储。例如:classSimpleClass{private:intnum;doubled;public:SimpleClass(intn,doubledd):num(n),d(dd){}};在SimpleClass对象的内存
  • 2024-05-04c++继承两个类怎么实现
    在C++中,继承两个类可以通过多重继承来实现。多重继承允许一个派生类从多个基类继承属性和方法。以下是一个继承两个类的示例:#include<iostream>//第一个基类classBase1{public:voidmethod1(){std::cout<<"Base1method1"<<std::endl;}};//
  • 2024-04-07C++核心编程:多继承
    #include<iostream>usingnamespacestd;//多继承语法继承方式父类1,继承方式父类2//实际开发过程中,一般不建议使用多继承classBase1{public: Base1() { m_A=100; } intm_A;};classBase2{public: Base2() { m_A=200; } intm_A;};cl
  • 2024-03-22python中的多继承理解
    在python的多继承中,父类的初始化顺序遵循所谓方法解析顺序(MethodResolutionOrder,MRO)的机制。python使用C3线性化算法来确定多继承类的MRO:1.目标:创建一个一致的线性继承顺序,同时保持父类的相对顺序和子类优先原则。2.子类优先:子类总是在其父类之前出现。从而子类
  • 2024-03-20C++ 多重继承下的内存布局
    1.多重继承多重继承示例代码如下:classBase1{public:voidf0(){}virtualvoidf1(){}inta;};classBase2{public:virtualvoidf2(){}intb;};classDerived:publicBase1,publicBase2{public:voidd(){}voidf2(){}
  • 2024-03-06C++派生类构造函数
    实例#include<iostream>usingnamespacestd;classBase1{//基类Base1,构造函数有参数public:Base1(inti){cout<<"ConstructingBase1"<<i<<endl;}};classBase2{//基类Base2,构造函数有参数public:Base2(intj){cout<&l
  • 2024-02-18阅读下面 C++ 代码,输出结果为()
    #include<iostream>usingnamespacestd;classbase1{private:inta,b;public:base1(inti):b(i+1),a(b){}base1():b(0),a(b){}intget_a(){returna;}intget_b(){returnb;}};intmain()
  • 2023-08-13Day1 - 2023/08/13
    B-BaseK(atcoder.jp)题意:给你两个$K$进制数$A$和$B$,将其转化为十进制,并输出二者的乘积。思路:低位往高位的权重依次为$K^0,K^1,\cdot\cdot\cdotK^n$,若这一位是$1$,就把权重累加起来,最后计算乘积即可。代码:#include<bits/stdc++.h>#defineL(i,j,
  • 2023-06-17Java_Base1之idea的使用
    准备工作:1、编码集file->settings->Editor->Fileencodingsprojectencodingutf-8Defaultencodingforpropertiesfilesutf-8并勾上后面2、jdkfile->projectstructure->project->projectsdk填写自己的jdk路径3、字体file->settings->Editor
  • 2023-04-19多态性4
    #include<iostream>usingnamespacestd;classBase1{ public: virtualvoiddisplay()const;};voidBase1::display()const{ cout<<"Base1::display()"<<endl;}classBase2:publicBase1{ public: voiddisplay()const;};voidBase2::displ
  • 2023-04-15C++中的虚函数表实现机制——对于虚表的内存布局讲解得非常好
    C++中的虚函数表实现机制摘自:https://blog.twofei.com/496/前言大家都应该知道C++的精髓是虚函数吧?虚函数带来的好处就是:可以定义一个基类的指针,其指向一个继承类,当通过基类的指针去调用函数时,可以在运行时决定该调用基类的函数还是继承类的函数.虚函数是实现多态(
  • 2023-04-12类的继承3
    #include<iostream>usingnamespacestd;classBase1{ public: intvar; voidfun() { cout<<"MembberofBase1"<<endl; } };classBase2{ public: intvar; voidfun(){ cout<<"MemberofBase2"<<endl; }};
  • 2023-04-12类的继承2
    #include<iostream>usingnamespacestd;classBase1{ public: Base1(inti){ cout<<"ConstructingBase1"<<i<<endl; } Base1(){ cout<<"ConstructingBase1"<<endl; }};classBase2{ public: Base2(intj
  • 2023-04-12打卡第一日
    例7-1:#include<iostream>#include<cmath>usingnamespacestd;classpoint{public:   voidinitpoint(floatx=0,floaty=0){this->x=x;this->y=y;}   voidmove(floatoffx,floatoffy){x+=offx;y+=offy;}   floatgetx
  • 2023-04-12类的继承1
    #include<iostream>usingnamespacestd;classBase1{ public: Base1(inti){ cout<<"ConstructingBase1"<<i<<endl; }};classBase2{ public: Base2(intj){ cout<<"ConstructingBase2"<<j<<endl;
  • 2023-04-10打卡一小时
    #include<iostream>#include<cmath>#include"Rectangle.h"usingnamespacestd;intmain(){   Rectanglerect;   rect.intiRectangle(2,3,20,10);   rect.move(3,2);   cout<<"Thedateofrect(x,y,w,h):"<&l
  • 2023-02-06日常学习:override、verdi
    override不可重载的部分由于一些原因。变量引用本身依赖于一个路径,这个路径不可变更,因此,使用以下方法获取子类的变量:https://bbs.eetop.cn/forum.php?mod=viewthread&tid
  • 2022-12-02类的内存结构(一)
    类的内存结构包含什么?静态成员变量和静态成员函数是不会计算在类的内存结构中的,因为静态static决定了它们早在编译期就确定了静态变量区中的地址,因此通常来说类的内存结
  • 2022-10-17C++ 虚函数表
    C++类在内存中的存储方式C++内存分为5个区域:堆heap:由new分配的内存块,其释放编译器不去管,由程序员自己控制。如果程序员没有释放掉,在程序结束时系统会自动回收。
  • 2022-09-24面试题:int[] arr 和 int... arr在参数列表中是一回事儿吗?
    publicclassExer{publicstaticvoidmain(String[]args){Base1b1=newSub1();b1.add(1,2,3);}}classBase1{publicvoidadd(inta,int...arr){System.