词条 | 动态联编 |
释义 | 动态联编又称动态关联 定义: 编译程序在编译阶段并不能确切知道将要调用的函数,只有在程序执行时才能确定将要调用的函数,为此要确切知道该调用的函数,要求联编工作要在程序运行时进行,这种在程序运行时进行联编工作被称为动态联编。 动态联编必须包括以下方面: 成员函数必须声明为virtual 如果基类中声明了为虚函数,则派生类中不必再声明。 调用方式: 通过对象的指针或引用调用成员函数;或通过成员函数调用,反之就无法实现动态联编。 例如:#include <iostream> #include <string> using namespace std; class CBuilding { //定义建筑类 string name; //定义名称 public: void set(string strName); //修改名称 virtual void display() //显示信息,这里是内联函数,而且声明为虚函数 { cout << "建筑是" << name << "\"; } };//建筑类定义完毕 void CBuilding::set(string strName) { //修改名称方法的实现 name = strName; } class CBridge : public CBuilding { //通过继承来定义桥类 float length; //定义长度 public: void setLength(float l = 0.0){length = l;} //设置长度 void display() { CBuilding::display(); //调用基类方法显示名称 cout << "其长度是" << length << "米。\"; //显示长度信息 } };//桥类定义完毕 void main() { CBuilding building; //创建建筑对象 CBridge bridge; //创建桥对象 building.set("中国古代建筑"); //设置名称 building.display(); //显示信息 bridge.set("中国赵州桥"); //设置桥的名称 bridge.setLength(static_cast <float>(60.40)); //修改桥的长度 bridge.display(); //显示桥的信息 return; } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。