建立一个Win32 console application工程Cplusplus,作为对C++的体验和理解。程序中建立了一个基类animal,一个派生类fish。通过此例程可以直观的理解类、继承、虚函数等C++基础概念。
软件组织结构如下图:
SourceCode为Cplusplus.zip
类比C语言的结构体(struct)概念体会C++中类(class)的概念。类中可以定义函数,可以定义公有私有属性,但结构体不行。
类是抽象概念,类的对象是实例,可以创建,可以销毁。
构造函数。C++构造函数的名字和类名相同,没有返回值,作用是对对象本身做初始化工作。
析构函数。定义格式为~类名。是反向的构造函数,没有返回值,一个类中只能有一个析构函数,作用是清除类的对象。对一个对象来说,析构函数是最后一个被调用的成员函数。一般在构造函数中初始化对象的成员变量,分配内存空间,在析构函数中释放资源。
函数的重载。函数的参数类型、参数个数不同,才能构成函数的重载。
this指针。This指针是一个隐含指针,指向对象本身。
继承。class fish:public animal。
在构造子类时,可以显示地调动父类的带参数的构造函数。Fish():animal(400,300);
多重继承。多重继承的语法与单一继承很类似class B:public C,public D。
虚函数。用virtual关键字申明的函数叫做虚函数。当C++编译器在编译时,发现animal类的breathe()函数时虚函数,就会采用迟邦定技术,即编译时并不确定具体调用的函数,而是在运行时依据对象的类型来确认调用的是哪一个函数,这种能力叫做C++的多态性:在基类的函数前加上virtual关键字,在派生类中重新写该函数,运行时将会根据对象的实际类型来调用相应的函数,如果对象是派生类就调用派生类的函数,如果是基类就调用基类的函数。
animal::~animal()。其中::叫做域标识符,用于指明一个函数属于哪个类或一个数据成员属于哪个类。::前面如果不跟类名,表示是全局函数或全局变量,不属于某类。
文章评论(0条评论)
登录后参与讨论