1 extern
extern可置于变量或者函数前,以表示变量或者函数的 定义 在别的文件中,提示编译器遇到此变量和函数(在程序中取代include “*.h”来声明函数)时在其他模块中寻找其定义。另外,extern也可用来进行链接指定(extern “C” int foo() 避免C++编译时更改函数为中间名称)。
//A.cpp extern int i; int main(){ i=100;//试图使用B中定义的全局变量 } //B.cpp int i;
2 虚函数和纯虚函数
虚函数主要用来实现多态
class Animation{ public: virtual void Eat(){ cout<<"anything"<<endl; }; }; class Cat : public Animation{ public: virtual void Eat(){ cout<<"fish"<<endl; }; }; class Dog : public Animation{ public: virtual void Eat(){ cout<<"bone"<<endl; }; }; int main(){ Animation a; Cat b; Dog c; Animation *p1 = &a; Animation *p2 = &b; Animation *p3 = &c; p1->Eat();//anything p2->Eat();//fish p3->Eat();//bone return 0; }
纯虚函数virtual void fun() = 0;含有纯虚函数的类为抽象类