C C++最新c++探险--有虚函数时的继承,C C++studio基础

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

#mermaid-svg-IBmcXQG7smu1al0s .label{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);fill:#333;color:#333}#mermaid-svg-IBmcXQG7smu1al0s .label text{fill:#333}#mermaid-svg-IBmcXQG7smu1al0s .node rect,#mermaid-svg-IBmcXQG7smu1al0s .node circle,#mermaid-svg-IBmcXQG7smu1al0s .node ellipse,#mermaid-svg-IBmcXQG7smu1al0s .node polygon,#mermaid-svg-IBmcXQG7smu1al0s .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-IBmcXQG7smu1al0s .node .label{text-align:center;fill:#333}#mermaid-svg-IBmcXQG7smu1al0s .node.clickable{cursor:pointer}#mermaid-svg-IBmcXQG7smu1al0s .arrowheadPath{fill:#333}#mermaid-svg-IBmcXQG7smu1al0s .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-IBmcXQG7smu1al0s .flowchart-link{stroke:#333;fill:none}#mermaid-svg-IBmcXQG7smu1al0s .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-IBmcXQG7smu1al0s .edgeLabel rect{opacity:0.9}#mermaid-svg-IBmcXQG7smu1al0s .edgeLabel span{color:#333}#mermaid-svg-IBmcXQG7smu1al0s .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-IBmcXQG7smu1al0s .cluster text{fill:#333}#mermaid-svg-IBmcXQG7smu1al0s div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-IBmcXQG7smu1al0s .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-IBmcXQG7smu1al0s text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-IBmcXQG7smu1al0s .actor-line{stroke:grey}#mermaid-svg-IBmcXQG7smu1al0s .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-IBmcXQG7smu1al0s .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-IBmcXQG7smu1al0s #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-IBmcXQG7smu1al0s .sequenceNumber{fill:#fff}#mermaid-svg-IBmcXQG7smu1al0s #sequencenumber{fill:#333}#mermaid-svg-IBmcXQG7smu1al0s #crosshead path{fill:#333;stroke:#333}#mermaid-svg-IBmcXQG7smu1al0s .messageText{fill:#333;stroke:#333}#mermaid-svg-IBmcXQG7smu1al0s .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-IBmcXQG7smu1al0s .labelText,#mermaid-svg-IBmcXQG7smu1al0s .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-IBmcXQG7smu1al0s .loopText,#mermaid-svg-IBmcXQG7smu1al0s .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-IBmcXQG7smu1al0s .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-IBmcXQG7smu1al0s .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-IBmcXQG7smu1al0s .noteText,#mermaid-svg-IBmcXQG7smu1al0s .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-IBmcXQG7smu1al0s .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-IBmcXQG7smu1al0s .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-IBmcXQG7smu1al0s .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-IBmcXQG7smu1al0s .mermaid-main-font{font-family:“trebuchet ms”, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-IBmcXQG7smu1al0s .section{stroke:none;opacity:0.2}#mermaid-svg-IBmcXQG7smu1al0s .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-IBmcXQG7smu1al0s .section2{fill:#fff400}#mermaid-svg-IBmcXQG7smu1al0s .section1,#mermaid-svg-IBmcXQG7smu1al0s .section3{fill:#fff;opacity:0.2}#mermaid-svg-IBmcXQG7smu1al0s .sectionTitle0{fill:#333}#mermaid-svg-IBmcXQG7smu1al0s .sectionTitle1{fill:#333}#mermaid-svg-IBmcXQG7smu1al0s .sectionTitle2{fill:#333}#mermaid-svg-IBmcXQG7smu1al0s .sectionTitle3{fill:#333}#mermaid-svg-IBmcXQG7smu1al0s .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-IBmcXQG7smu1al0s .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-IBmcXQG7smu1al0s .grid .tick text{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-IBmcXQG7smu1al0s .grid path{stroke-width:0}#mermaid-svg-IBmcXQG7smu1al0s .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-IBmcXQG7smu1al0s .task{stroke-width:2}#mermaid-svg-IBmcXQG7smu1al0s .taskText{text-anchor:middle;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-IBmcXQG7smu1al0s .taskText:not([font-size]){font-size:11px}#mermaid-svg-IBmcXQG7smu1al0s .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-IBmcXQG7smu1al0s .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-IBmcXQG7smu1al0s .task.clickable{cursor:pointer}#mermaid-svg-IBmcXQG7smu1al0s .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-IBmcXQG7smu1al0s .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-IBmcXQG7smu1al0s .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-IBmcXQG7smu1al0s .taskText0,#mermaid-svg-IBmcXQG7smu1al0s .taskText1,#mermaid-svg-IBmcXQG7smu1al0s .taskText2,#mermaid-svg-IBmcXQG7smu1al0s .taskText3{fill:#fff}#mermaid-svg-IBmcXQG7smu1al0s .task0,#mermaid-svg-IBmcXQG7smu1al0s .task1,#mermaid-svg-IBmcXQG7smu1al0s .task2,#mermaid-svg-IBmcXQG7smu1al0s .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-IBmcXQG7smu1al0s .taskTextOutside0,#mermaid-svg-IBmcXQG7smu1al0s .taskTextOutside2{fill:#000}#mermaid-svg-IBmcXQG7smu1al0s .taskTextOutside1,#mermaid-svg-IBmcXQG7smu1al0s .taskTextOutside3{fill:#000}#mermaid-svg-IBmcXQG7smu1al0s .active0,#mermaid-svg-IBmcXQG7smu1al0s .active1,#mermaid-svg-IBmcXQG7smu1al0s .active2,#mermaid-svg-IBmcXQG7smu1al0s .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-IBmcXQG7smu1al0s .activeText0,#mermaid-svg-IBmcXQG7smu1al0s .activeText1,#mermaid-svg-IBmcXQG7smu1al0s .activeText2,#mermaid-svg-IBmcXQG7smu1al0s .activeText3{fill:#000 !important}#mermaid-svg-IBmcXQG7smu1al0s .done0,#mermaid-svg-IBmcXQG7smu1al0s .done1,#mermaid-svg-IBmcXQG7smu1al0s .done2,#mermaid-svg-IBmcXQG7smu1al0s .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-IBmcXQG7smu1al0s .doneText0,#mermaid-svg-IBmcXQG7smu1al0s .doneText1,#mermaid-svg-IBmcXQG7smu1al0s .doneText2,#mermaid-svg-IBmcXQG7smu1al0s .doneText3{fill:#000 !important}#mermaid-svg-IBmcXQG7smu1al0s .crit0,#mermaid-svg-IBmcXQG7smu1al0s .crit1,#mermaid-svg-IBmcXQG7smu1al0s .crit2,#mermaid-svg-IBmcXQG7smu1al0s .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-IBmcXQG7smu1al0s .activeCrit0,#mermaid-svg-IBmcXQG7smu1al0s .activeCrit1,#mermaid-svg-IBmcXQG7smu1al0s .activeCrit2,#mermaid-svg-IBmcXQG7smu1al0s .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-IBmcXQG7smu1al0s .doneCrit0,#mermaid-svg-IBmcXQG7smu1al0s .doneCrit1,#mermaid-svg-IBmcXQG7smu1al0s .doneCrit2,#mermaid-svg-IBmcXQG7smu1al0s .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-IBmcXQG7smu1al0s .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-IBmcXQG7smu1al0s .milestoneText{font-style:italic}#mermaid-svg-IBmcXQG7smu1al0s .doneCritText0,#mermaid-svg-IBmcXQG7smu1al0s .doneCritText1,#mermaid-svg-IBmcXQG7smu1al0s .doneCritText2,#mermaid-svg-IBmcXQG7smu1al0s .doneCritText3{fill:#000 !important}#mermaid-svg-IBmcXQG7smu1al0s .activeCritText0,#mermaid-svg-IBmcXQG7smu1al0s .activeCritText1,#mermaid-svg-IBmcXQG7smu1al0s .activeCritText2,#mermaid-svg-IBmcXQG7smu1al0s .activeCritText3{fill:#000 !important}#mermaid-svg-IBmcXQG7smu1al0s .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-IBmcXQG7smu1al0s g.classGroup text{fill:#9370db;stroke:none;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);font-size:10px}#mermaid-svg-IBmcXQG7smu1al0s g.classGroup text .title{font-weight:bolder}#mermaid-svg-IBmcXQG7smu1al0s g.clickable{cursor:pointer}#mermaid-svg-IBmcXQG7smu1al0s g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-IBmcXQG7smu1al0s g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-IBmcXQG7smu1al0s .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-IBmcXQG7smu1al0s .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-IBmcXQG7smu1al0s .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-IBmcXQG7smu1al0s .dashed-line{stroke-dasharray:3}#mermaid-svg-IBmcXQG7smu1al0s #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IBmcXQG7smu1al0s #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IBmcXQG7smu1al0s #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-IBmcXQG7smu1al0s #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-IBmcXQG7smu1al0s #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IBmcXQG7smu1al0s #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IBmcXQG7smu1al0s #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IBmcXQG7smu1al0s #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-IBmcXQG7smu1al0s .commit-id,#mermaid-svg-IBmcXQG7smu1al0s .commit-msg,#mermaid-svg-IBmcXQG7smu1al0s .branch-label{fill:lightgrey;color:lightgrey;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-IBmcXQG7smu1al0s .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-IBmcXQG7smu1al0s .slice{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-IBmcXQG7smu1al0s g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-IBmcXQG7smu1al0s g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-IBmcXQG7smu1al0s g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-IBmcXQG7smu1al0s g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-IBmcXQG7smu1al0s g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-IBmcXQG7smu1al0s g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-IBmcXQG7smu1al0s .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-IBmcXQG7smu1al0s .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-IBmcXQG7smu1al0s .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-IBmcXQG7smu1al0s .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-IBmcXQG7smu1al0s .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-IBmcXQG7smu1al0s .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-IBmcXQG7smu1al0s .edgeLabel text{fill:#333}#mermaid-svg-IBmcXQG7smu1al0s .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-IBmcXQG7smu1al0s .node circle.state-start{fill:black;stroke:black}#mermaid-svg-IBmcXQG7smu1al0s .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-IBmcXQG7smu1al0s #statediagram-barbEnd{fill:#9370db}#mermaid-svg-IBmcXQG7smu1al0s .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-IBmcXQG7smu1al0s .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-IBmcXQG7smu1al0s .statediagram-state .divider{stroke:#9370db}#mermaid-svg-IBmcXQG7smu1al0s .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-IBmcXQG7smu1al0s .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-IBmcXQG7smu1al0s .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-IBmcXQG7smu1al0s .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-IBmcXQG7smu1al0s .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-IBmcXQG7smu1al0s .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-IBmcXQG7smu1al0s .note-edge{stroke-dasharray:5}#mermaid-svg-IBmcXQG7smu1al0s .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{–mermaid-font-family: ‘“trebuchet ms”, verdana, arial’;–mermaid-font-family: “Comic Sans MS”, “Comic Sans”, cursive}#mermaid-svg-IBmcXQG7smu1al0s .error-icon{fill:#522}#mermaid-svg-IBmcXQG7smu1al0s .error-text{fill:#522;stroke:#522}#mermaid-svg-IBmcXQG7smu1al0s .edge-thickness-normal{stroke-width:2px}#mermaid-svg-IBmcXQG7smu1al0s .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-IBmcXQG7smu1al0s .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-IBmcXQG7smu1al0s .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-IBmcXQG7smu1al0s .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-IBmcXQG7smu1al0s .marker{fill:#333}#mermaid-svg-IBmcXQG7smu1al0s .marker.cross{stroke:#333} :root { --mermaid-font-family: “trebuchet ms”, verdana, arial;} #mermaid-svg-IBmcXQG7smu1al0s { color: rgba(0, 0, 0, 0.75); font: normal normal normal normal 16px/26px -apple-system, “SF UI Text”, Arial, “PingFang SC”, “Hiragino Sans GB”, “Microsoft YaHei”, “WenQuanYi Micro Hei”, sans-serif; } Sub class Base int a int b int c

  1. 父类有虚函数

    如果父类中有虚函数,那么就会有虚函数表存储在内存中,父类对象会生成一个虚表指针放在内存的开始位置。


class Base {

public:  int a;

		 virtual void base_func() {}

		 virtual void base_func_other() {}

private: int b;

};

class Sub : public Base {

		 int c;

		 virtual void base_func() {}

		 virtual void sub_func() {}

};



#mermaid-svg-vuJADMZLiiXKAvHP .label{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);fill:#333;color:#333}#mermaid-svg-vuJADMZLiiXKAvHP .label text{fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP .node rect,#mermaid-svg-vuJADMZLiiXKAvHP .node circle,#mermaid-svg-vuJADMZLiiXKAvHP .node ellipse,#mermaid-svg-vuJADMZLiiXKAvHP .node polygon,#mermaid-svg-vuJADMZLiiXKAvHP .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-vuJADMZLiiXKAvHP .node .label{text-align:center;fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP .node.clickable{cursor:pointer}#mermaid-svg-vuJADMZLiiXKAvHP .arrowheadPath{fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-vuJADMZLiiXKAvHP .flowchart-link{stroke:#333;fill:none}#mermaid-svg-vuJADMZLiiXKAvHP .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-vuJADMZLiiXKAvHP .edgeLabel rect{opacity:0.9}#mermaid-svg-vuJADMZLiiXKAvHP .edgeLabel span{color:#333}#mermaid-svg-vuJADMZLiiXKAvHP .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-vuJADMZLiiXKAvHP .cluster text{fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-vuJADMZLiiXKAvHP .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-vuJADMZLiiXKAvHP text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-vuJADMZLiiXKAvHP .actor-line{stroke:grey}#mermaid-svg-vuJADMZLiiXKAvHP .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-vuJADMZLiiXKAvHP .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-vuJADMZLiiXKAvHP #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-vuJADMZLiiXKAvHP .sequenceNumber{fill:#fff}#mermaid-svg-vuJADMZLiiXKAvHP #sequencenumber{fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP #crosshead path{fill:#333;stroke:#333}#mermaid-svg-vuJADMZLiiXKAvHP .messageText{fill:#333;stroke:#333}#mermaid-svg-vuJADMZLiiXKAvHP .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-vuJADMZLiiXKAvHP .labelText,#mermaid-svg-vuJADMZLiiXKAvHP .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-vuJADMZLiiXKAvHP .loopText,#mermaid-svg-vuJADMZLiiXKAvHP .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-vuJADMZLiiXKAvHP .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-vuJADMZLiiXKAvHP .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-vuJADMZLiiXKAvHP .noteText,#mermaid-svg-vuJADMZLiiXKAvHP .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-vuJADMZLiiXKAvHP .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-vuJADMZLiiXKAvHP .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-vuJADMZLiiXKAvHP .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-vuJADMZLiiXKAvHP .mermaid-main-font{font-family:“trebuchet ms”, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-vuJADMZLiiXKAvHP .section{stroke:none;opacity:0.2}#mermaid-svg-vuJADMZLiiXKAvHP .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-vuJADMZLiiXKAvHP .section2{fill:#fff400}#mermaid-svg-vuJADMZLiiXKAvHP .section1,#mermaid-svg-vuJADMZLiiXKAvHP .section3{fill:#fff;opacity:0.2}#mermaid-svg-vuJADMZLiiXKAvHP .sectionTitle0{fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP .sectionTitle1{fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP .sectionTitle2{fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP .sectionTitle3{fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-vuJADMZLiiXKAvHP .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-vuJADMZLiiXKAvHP .grid .tick text{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-vuJADMZLiiXKAvHP .grid path{stroke-width:0}#mermaid-svg-vuJADMZLiiXKAvHP .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-vuJADMZLiiXKAvHP .task{stroke-width:2}#mermaid-svg-vuJADMZLiiXKAvHP .taskText{text-anchor:middle;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-vuJADMZLiiXKAvHP .taskText:not([font-size]){font-size:11px}#mermaid-svg-vuJADMZLiiXKAvHP .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-vuJADMZLiiXKAvHP .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-vuJADMZLiiXKAvHP .task.clickable{cursor:pointer}#mermaid-svg-vuJADMZLiiXKAvHP .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-vuJADMZLiiXKAvHP .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-vuJADMZLiiXKAvHP .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-vuJADMZLiiXKAvHP .taskText0,#mermaid-svg-vuJADMZLiiXKAvHP .taskText1,#mermaid-svg-vuJADMZLiiXKAvHP .taskText2,#mermaid-svg-vuJADMZLiiXKAvHP .taskText3{fill:#fff}#mermaid-svg-vuJADMZLiiXKAvHP .task0,#mermaid-svg-vuJADMZLiiXKAvHP .task1,#mermaid-svg-vuJADMZLiiXKAvHP .task2,#mermaid-svg-vuJADMZLiiXKAvHP .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-vuJADMZLiiXKAvHP .taskTextOutside0,#mermaid-svg-vuJADMZLiiXKAvHP .taskTextOutside2{fill:#000}#mermaid-svg-vuJADMZLiiXKAvHP .taskTextOutside1,#mermaid-svg-vuJADMZLiiXKAvHP .taskTextOutside3{fill:#000}#mermaid-svg-vuJADMZLiiXKAvHP .active0,#mermaid-svg-vuJADMZLiiXKAvHP .active1,#mermaid-svg-vuJADMZLiiXKAvHP .active2,#mermaid-svg-vuJADMZLiiXKAvHP .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-vuJADMZLiiXKAvHP .activeText0,#mermaid-svg-vuJADMZLiiXKAvHP .activeText1,#mermaid-svg-vuJADMZLiiXKAvHP .activeText2,#mermaid-svg-vuJADMZLiiXKAvHP .activeText3{fill:#000 !important}#mermaid-svg-vuJADMZLiiXKAvHP .done0,#mermaid-svg-vuJADMZLiiXKAvHP .done1,#mermaid-svg-vuJADMZLiiXKAvHP .done2,#mermaid-svg-vuJADMZLiiXKAvHP .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-vuJADMZLiiXKAvHP .doneText0,#mermaid-svg-vuJADMZLiiXKAvHP .doneText1,#mermaid-svg-vuJADMZLiiXKAvHP .doneText2,#mermaid-svg-vuJADMZLiiXKAvHP .doneText3{fill:#000 !important}#mermaid-svg-vuJADMZLiiXKAvHP .crit0,#mermaid-svg-vuJADMZLiiXKAvHP .crit1,#mermaid-svg-vuJADMZLiiXKAvHP .crit2,#mermaid-svg-vuJADMZLiiXKAvHP .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-vuJADMZLiiXKAvHP .activeCrit0,#mermaid-svg-vuJADMZLiiXKAvHP .activeCrit1,#mermaid-svg-vuJADMZLiiXKAvHP .activeCrit2,#mermaid-svg-vuJADMZLiiXKAvHP .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-vuJADMZLiiXKAvHP .doneCrit0,#mermaid-svg-vuJADMZLiiXKAvHP .doneCrit1,#mermaid-svg-vuJADMZLiiXKAvHP .doneCrit2,#mermaid-svg-vuJADMZLiiXKAvHP .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-vuJADMZLiiXKAvHP .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-vuJADMZLiiXKAvHP .milestoneText{font-style:italic}#mermaid-svg-vuJADMZLiiXKAvHP .doneCritText0,#mermaid-svg-vuJADMZLiiXKAvHP .doneCritText1,#mermaid-svg-vuJADMZLiiXKAvHP .doneCritText2,#mermaid-svg-vuJADMZLiiXKAvHP .doneCritText3{fill:#000 !important}#mermaid-svg-vuJADMZLiiXKAvHP .activeCritText0,#mermaid-svg-vuJADMZLiiXKAvHP .activeCritText1,#mermaid-svg-vuJADMZLiiXKAvHP .activeCritText2,#mermaid-svg-vuJADMZLiiXKAvHP .activeCritText3{fill:#000 !important}#mermaid-svg-vuJADMZLiiXKAvHP .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-vuJADMZLiiXKAvHP g.classGroup text{fill:#9370db;stroke:none;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family);font-size:10px}#mermaid-svg-vuJADMZLiiXKAvHP g.classGroup text .title{font-weight:bolder}#mermaid-svg-vuJADMZLiiXKAvHP g.clickable{cursor:pointer}#mermaid-svg-vuJADMZLiiXKAvHP g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-vuJADMZLiiXKAvHP g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-vuJADMZLiiXKAvHP .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-vuJADMZLiiXKAvHP .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-vuJADMZLiiXKAvHP .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-vuJADMZLiiXKAvHP .dashed-line{stroke-dasharray:3}#mermaid-svg-vuJADMZLiiXKAvHP #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vuJADMZLiiXKAvHP #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vuJADMZLiiXKAvHP #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-vuJADMZLiiXKAvHP #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-vuJADMZLiiXKAvHP #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vuJADMZLiiXKAvHP #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vuJADMZLiiXKAvHP #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vuJADMZLiiXKAvHP #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-vuJADMZLiiXKAvHP .commit-id,#mermaid-svg-vuJADMZLiiXKAvHP .commit-msg,#mermaid-svg-vuJADMZLiiXKAvHP .branch-label{fill:lightgrey;color:lightgrey;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-vuJADMZLiiXKAvHP .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-vuJADMZLiiXKAvHP .slice{font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-vuJADMZLiiXKAvHP g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-vuJADMZLiiXKAvHP g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-vuJADMZLiiXKAvHP g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-vuJADMZLiiXKAvHP g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-vuJADMZLiiXKAvHP g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-vuJADMZLiiXKAvHP .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-vuJADMZLiiXKAvHP .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-vuJADMZLiiXKAvHP .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-vuJADMZLiiXKAvHP .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-vuJADMZLiiXKAvHP .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-vuJADMZLiiXKAvHP .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-vuJADMZLiiXKAvHP .edgeLabel text{fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:‘trebuchet ms’, verdana, arial;font-family:var(–mermaid-font-family)}#mermaid-svg-vuJADMZLiiXKAvHP .node circle.state-start{fill:black;stroke:black}#mermaid-svg-vuJADMZLiiXKAvHP .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-vuJADMZLiiXKAvHP #statediagram-barbEnd{fill:#9370db}#mermaid-svg-vuJADMZLiiXKAvHP .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-vuJADMZLiiXKAvHP .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-vuJADMZLiiXKAvHP .statediagram-state .divider{stroke:#9370db}#mermaid-svg-vuJADMZLiiXKAvHP .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-vuJADMZLiiXKAvHP .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-vuJADMZLiiXKAvHP .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-vuJADMZLiiXKAvHP .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-vuJADMZLiiXKAvHP .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-vuJADMZLiiXKAvHP .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-vuJADMZLiiXKAvHP .note-edge{stroke-dasharray:5}#mermaid-svg-vuJADMZLiiXKAvHP .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{–mermaid-font-family: ‘“trebuchet ms”, verdana, arial’;–mermaid-font-family: “Comic Sans MS”, “Comic Sans”, cursive}#mermaid-svg-vuJADMZLiiXKAvHP .error-icon{fill:#522}#mermaid-svg-vuJADMZLiiXKAvHP .error-text{fill:#522;stroke:#522}#mermaid-svg-vuJADMZLiiXKAvHP .edge-thickness-normal{stroke-width:2px}#mermaid-svg-vuJADMZLiiXKAvHP .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-vuJADMZLiiXKAvHP .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-vuJADMZLiiXKAvHP .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-vuJADMZLiiXKAvHP .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-vuJADMZLiiXKAvHP .marker{fill:#333}#mermaid-svg-vuJADMZLiiXKAvHP .marker.cross{stroke:#333} :root { --mermaid-font-family: “trebuchet ms”, verdana, arial;} #mermaid-svg-vuJADMZLiiXKAvHP { color: rgba(0, 0, 0, 0.75); font: normal normal normal normal 16px/26px -apple-system, “SF UI Text”, Arial, “PingFang SC”, “Hiragino Sans GB”, “Microsoft YaHei”, “WenQuanYi Micro Hei”, sans-serif; } Sub +class Base vfptr int a int b int c Sub_vftable & Sub_meta & Sub::base_func &Base::base_func_other &Sub::sub_func 虚表

  • 多态类的继承在运行时,会拷贝一份虚函数表放到内存里(父类虚表仍存在),将虚表中重写过的方法地址用子类中的地址替换。同时子类对象会将父类对象的虚表指针继承下来,指向子类虚表。

  • 因此子类虚表如图。

    • 首先Sub_meta存储着运行时对象的类型信息(如果对象时Base类型就是Base_meta),运行时typeid会根据此来计算类型。
    • base_func被子类重写了,因此换成子类中的函数地址。base_func_other仍然是基类中的地址。sub_func是子类新定义的虚函数,是子类中的地址。
  1. 灵活运用多态

    变量不能表现多态,虚函数可以表现多态。


class Base {

public:  

		 virtual void process() {

		 	send_request();

		 	get_response();

		}

		 virtual void send_request() {}

		 virtual void get_response() {}

private: int b;

};

class Sub : public Base {

public:

		 virtual void process() {

		 	Base::process();

		}

		 virtual void send_request() {}

		 virtual void get_response() {}

};



Base* b = new Sub;

b->process();



![img](https://img-blog.csdnimg.cn/img_convert/1d7aa4bb5c10dae027e4a7eb64d75ea0.png)
![img](https://img-blog.csdnimg.cn/img_convert/7a9b0c4bf611a3262e91fc9b40110429.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值