科创园

科创园地,分享技术知识,为科技助力发展,贡献一己之力。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C++程序运行原理分析

Posted on 2012-02-23 10:50  科创园  阅读(2943)  评论(0编辑  收藏  举报

先对上面两小节内容回归一下,第一节中总结了windows的运行原理,事件驱动消息的机制,如何设计窗口应用程序,主要是为了后面学习WFC作基础,重要的是理解原理以及msdn手册的重要性。第二节主要介绍了C++的一些基本特性,比如面向对象的思想、结构体、类、构造函数、方法、虚方法、继承与覆盖、访问控制等知识,其中关于指针与引用的关系这里就不去介绍了。

下面结合程序来分析C++运行的原理

 

Animal.h头文件内容

#ifndef Animal_C
#define Animal_C Animal_C 通过宏定义解决类redefine的错误,这里宏定义是在编译预处理阶段执行
class Animal
{
public:

void sleep();
void eat();
virtual void breathe();
};
#endif

 

Fish头文件内容

#include "Animal.h"
class Fish:public Animal//这里加上了public 的目的是让Animal可见,不然在Main函数中将出错:conversion from 'class Fish *' to 'class Animal *' exists, but is inaccessible
{
public:
Fish();//这里要将构造函数初始化(由隐式变为显式),
void breathe();
};

 

 

 

Animal.cpp内容

 

#include "Animal.h"
class Fish:public Animal//这里加上了public 的目的是让Animal可见,不然在Main函数中将出错:conversion from 'class Fish *' to 'class Animal *' exists, but is inaccessible
{
public:
Fish();//这里要将构造函数初始化(由隐式变为显式),
void breathe();
};

 

Fish.cpp内容

 

#include "Animal.h"
class Fish:public Animal//这里加上了public 的目的是让Animal可见,不然在Main函数中将出错:conversion from 'class Fish *' to 'class Animal *' exists, but is inaccessible
{
public:
Fish();//这里要将构造函数初始化(由隐式变为显式),
void breathe();
};

 

Main.cpp主函数内容

 

 

#include "Animal.h"
class Fish:public Animal//这里加上了public 的目的是让Animal可见,不然在Main函数中将出错:conversion from 'class Fish *' to 'class Animal *' exists, but is inaccessible
{
public:
Fish();//这里要将构造函数初始化(由隐式变为显式),
void breathe();
};

附上图片: