动态联编-静态联编
来源:互联网 发布:p2p 知乎 编辑:程序博客网 时间:2024/04/28 23:32
动态联编又称动态关联
定义:
编译程序在编译阶段并不能确切知道将要调用的函数,只有在程序执行时才能确定将要调用的函数,为此要确切知道该调用的函数,要求联编工作要在程序运行时进行,这种在程序运行时进行联编工作被称为动态联编。
动态联编必须包括以下方面:
成员函数必须声明为virtual
如果基类中声明了为虚函数,则派生类中不必再声明。
调用方式:
通过对象的指针或引用调用成员函数;或通过成员函数调用,反之就无法实现动态联编。
例如:
#include <iostream>
using namespace std;
const float pi=3.14159;
class circle1
{
public:
virtual float area( ) //把area声明为虚函数
{
radius=2.5;
return pi*radius*radius;
}
private:
float radius;
};
class circle2:public circle1
{
public:
float area( )
{
radius=5.5;
return pi*radius*radius;
}
private:
float radius;
};
void main()
{
while(true)
{
cout<<"请输入1或2./n";
int choise;
cin>>choise;
circle1 *p; //定义一个类circle1的指针变量p
switch(choise)
{
case 1:p=new circle1;
break;
case 2:p=new circle2;
break;
default:break;
}
cout<<"the area of the circle"<<choise<<" "<<p->area()<<endl;
}
}
虚函数->重载?进行动态关联
动态联编 : int* temp = new int[size]; delete [] temp; ->属于动态存储 可人为控制大小和生灭
静态联编 : int temp[1024]; ->属于自动(静态)存储 大小一旦确定不可更改地占有相应空间,机械地按预定规则生灭
静态存储 Static 全局
动态存储 new delete 人为控制
自动存储 函数内,函数结束,相应解题
- 动态联编-静态联编
- 静态联编与动态联编
- 静态联编和动态联编
- 静态联编和动态联编
- 动态联编 和 静态联编
- 静态联编和动态联编
- 静态联编和动态联编
- 静态联编和动态联编
- 动态联编 和 静态联编
- 静态联编和动态联编
- 静态联编和动态联编
- 静态联编和动态联编
- 静态联编和动态联编
- 静态联编和动态联编
- 静态联编和动态联编
- 动态联编 和 静态联编
- 静态联编和动态联编
- 动态联编与静态联编
- 英特尔:MeeGo手机推迟至2011年发布
- Android Surface 介绍
- 123
- 数字时钟JS
- 实现程序互斥运行的几种方法 收藏
- 动态联编-静态联编
- LoadRunner基础知识学习
- LoadRunner基础知识学习
- C/C++基础知识:函数指针和指针函数的基本概念
- 单机配置Tomcat集群
- 456
- HTML播放器代码集
- 如何迈过职业生涯中的五个坎
- Socket API,CAsyncSocket,CSocket内幕及其用法