程序从开发到运行,大概是这么几个步骤:
1、程序员编写代码;
2、对写好的代码文件进行编译(预处理、编译、连接,这里统称),得到二进制文件;
3、机器运行编译好的二进制文件。
==============================================================================
首先C++依据多态的定义,我们可以把多态分为两个方向,一个是静态多态,一个是动态多态 。
多态定义: 一个接口多种方法。简单点说就是相同的调用方法,确有不同的实现方式。再通俗点讲,就是写程序中相同的调用方式,编译或运行时确执行不同的方法。
静态多态
编译时的多态,函数重载,行数模板。
动态多态
运行时的多态。
虚函数表指针,虚函数指针
展示代码:
class A
{
public:
virtual std::string tostring(){
return "A";
}
};
class B:public A
{
public:
std::string tostring(){
return "B";
}
};
class C:public B
{
public:
std::string tostring(){
return "C";
};
};
void printc(A* p)
{
cout<<p->tostring()<<endl;
}
int main(int argc, char *argv[])
{
A aa;
B b;
C c;
printc(&aa); //输出“A”
printc(&b); //输出“B”
printc(&c); //输出“C”
return 0;
}