C++静态联编与动态联编
目录
基本概念
举个栗子
基本概念
联编
就是将模块或者函数合并在一起生成可执行代码的处理过程(函数调用),按照联编所进行的阶段不同,可分为两种不同的联编方式:静态联编和动态联编。
函数调用和实现的过程
C++只有用到多态才会用到动态连编
程序员是看不出来的,只是系统内部的处理
程序在编译的时候,就知道某个类调用的是哪个函数
静态联编:编译阶段就将函数实现与函数调用关联起来;
动态连编:在程序执行阶段才将函数实现和调用关联;
注意:动态联编是针对C++的多态,C语言全部都是静态联编;
举个栗子
静态联编:
#include <iostream>
using namespace std;class A{public:void fun(){cout << "Class A fun() called" << endl; }};void main(){A a;a.fun();getchar();
}
程序运行截图如下:
动态联编
源码如下:
#include <iostream>
using namespace std;class Base{public:virtual void fun(){cout << "Class Base fun() called" << endl; }virtual ~Base(){cout << "~Base() called" << endl;}};class SubClass: public Base{public:void fun(){cout << "Class SubClass fun() called" << endl;}~SubClass(){cout << "~SubClass() called" << endl;}
};void main(){Base *p;int index;cin >> index;switch(index){case 1:p = new Base;break;default:p = new SubClass;}p->fun();delete p;system("pause");
}
运行截图如下:
C++静态联编与动态联编相关推荐
- 关于静态联编和动态联编
首先什么是联编? 通俗的来说联编就是函数调用(操作调用)与执行该操作(函数)的代码段之间的映射关系. 按照联编所进行的阶段不同可分为静态联编和动态联编 举个列子 #include<iostrea ...
- Cpp 对象模型探索 / 静态联编和动态联编
一.源码 #include <iostream>class Father { public:Father(){/*** 该处直接将该对象清零,意味着虚函数表指针亦被清零.*/memset( ...
- c++中的多态---1(多态概念,静态联编和动态联编,多态原理解析,重载,重写,重定义的对比)
多态的基本概念 多态是面向对象设计语言数据抽象和继承之外的第三个基本特征 多态性(polymorphism)提供接口与具体实现之间的另一层隔膜,从而将"what"和"ho ...
- C++的静态联编和动态联编
联编的概念 联编是指一个计算机程序自身彼此关联的过程,在这个联编过程中,需要确定程序中的操作调用(函数调用)与执行该操作(函数)的代码段之间的映射关系. 意思就是这个函数的实现有多种,联编就是把调用和 ...
- 虚拟函数-1、静态联编与动态联编,引入虚函数
在实际开发工作中,为提高代码的重用性,编写通用的功能模块,往往需要设计处理几种不同对象的通用程序,如示例2.1所示. 示例清单2.1 #include "stdio.h" #inc ...
- 静态联编与动态联编之virtual的作用
=========================定义========================= 将一个调用函数连接上正确的被调用函数,这个过程就叫做函数的联编,简称联编.在C++中,一共有两 ...
- 静态联编,动态联编,类指针之间的关系,虚函数与多态性,纯虚函数,虚析构函数
1.静态联编,是程序的匹配,连接在编译阶段实现,也称为早期匹配.重载函数使用静态联编. 2.动态联编是指程序联编推迟到运行时进行,所以又称为晚期联编.switch语句和if语句是动态联编的例子. #i ...
- C++之静态联编与动态联编及virtual关键字的作用
定义 将一个调用函数连接上正确的被调用函数,这个过程就叫做函数的联编,简称联编.在C++中,一共有两种联编的方式: 静态联编 #define:静态联编是指联编工作出现 在编译连接阶段. 特点:① 静态 ...
- 动态联编与静态联编的区别
摘要]:本文阐述了静态联编和动态联编的概念和区别,通过具体实例分析了实现动态联编的条件,指出了虚函数是实现动态联编的基础. [关键词]:静态联编:动态联编:虚函数 在C++中,联编是指一个计算机程序的 ...
最新文章
- Drug Target Review | 筛选用于抗COVID-19的抗病毒化合物
- 1191: 冰法斗神龙 暴力枚举
- 黑马程序员Linux系统开发视频之VIM使用教程
- dom4j-cookbook
- flask 配置静态文件模板文件
- qt实现点击出现窗口,点击其他任何地方窗口消失
- 搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (四)配置全攻略
- 编程恶搞项目——无限弹窗.exe版
- 解析银行卡卡BIN的来龙去脉
- Shine Effect
- shel脚本中批量替换文件名
- 使用电脑麦克风的时候发现有杂音怎么办
- Win10小娜搜索空白什么都不显示怎么办,开始菜单,搜索空白
- Java中的基本数据类型讲解(数值型、字符型、布尔型)
- EDA软件—Cadence学习笔记分享(内含安装教程)
- .rs是什么计算机语言,这几句计算机语言是什么意思Dim cnn As ADODB.ConnectionDim rs As ADODB.Reco...
- springcloud(十一):服务网关 Spring Cloud GateWay 入门
- 聚创卓跃:拼多多店铺的平台规则
- 服务器i文件夹,IBM i上http server实用技巧之一:访问IBM i多文件系统
- 计算机网络原理实验运城学院,运城学院力学精品课程--实验教学