C/C++笔记

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;含有纯虚函数的类为抽象类

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注