随时笔记之VC++ (一)

来源:互联网 发布:安卓编程权威指南 pdf 编辑:程序博客网 时间:2024/05/18 03:18

Windows 程序设计主要是基于消息。WinMainWindows程序的入口点

窗口的创建的步骤:

1. 设计一个窗口类

2. 注册一个窗口类

3. 创建窗口

4. 显示和更新窗口

Windows 应用程序消息处理机制:

1. 操作系统接收到应用程序的窗口消息,将消息投递到应用程序消息队列中。

2. 应用程序在消息循环中调用GetMessage函数从小心队列中取出一条一条的消息取出消息后可以对消息的处理,如 TranslateMessage产生新的消息。

3. 应用程序调用DispatchMessage,将消息传回操作系统,

4. 系统然后调用应用程序中的窗口回调函数进行消息的处理。

C++构造函数:

如果一个类中没有定义任何的构造函数,那么编译器一般都会提供一个默认的构造函数。这个默认的构造函数是一个不带参数的构造函数,如果类中定义了一个构造函数不管这个构造函数是否带参数,那么编译器不会再提供默认的构造函数,如果定义了一个带参数的构造函数,如果要无参数的构造函数,必须自己定义。

如果类中为成员变量分配了空间,析构函数最好的作用是清除分配的空间。

重载函数的条件:函数的参数类型或者参数的个数不同。才能算重载,返回类型不算。还有一种情况也不算例如:

1.  Void output(int a, int b=5);

2.  Void output(int a); 

如果output(5);  2种都可以,这样会产生歧义 这样也不算重载。

虚函数的使用 是C++采用了迟绑定技术,编译的时候不确定要到运行时确定。

所以说C++中的多态是采用了迟绑定技术实现的。运行中根据对象的类型进行判断。

纯虚函数是指不具体实现的虚函数。有纯虚函数的类叫做抽象类。这种类不能声明对象,派生类中必须完全实现基类的纯虚函数,否则派生类也变成了抽象类。不能实例化对象。

函数覆盖构成的条件:

1. 基类函数必须是虚函数。

发生覆盖的两个函数要分别位于派生类和基类中。

1.  函数名称和参数列表必须完全相同。

由于C++的多态是通过虚函数实现的,那么覆盖总是和多态关联在一起。在函数覆盖的情况下,编译器会在运行的时候根据对象的实际类型来确定要调用的函数。

函数的隐藏:

基类中的函数不是虚函数。并且只要函数名相同不要求参数列表相同。

派生类继承的基类中有虚函数,如果重写的基类中的函数,必须要函数名和参数列表相同这样才算是虚函数,不然的话只能算是函数的隐藏。

两种隐藏:

1. 派生类函数和基类的函数完全相同。只是基类中的函数没有使用Virtual.那么

   基类的函数将被隐藏起来,

2. 派生类和基类的函数名相同,但是参数列表不相同,这种情况下不管基类中是否有Virtual 关键字,基类中的函数都将被隐藏起来,要注意这种情况与

   函数重载的区别,重载发生在同一个类中。

Class Base

{

   Public: 

     Virtual void fn();

}

Class Derived: public Base

{

   Public:  

     Void fn(int a);

}

Class Derived2: public Derived

{

   Public:

     Void fn();

}

Derived 类中 隐藏了 Base 类中函数。Derived2 类中 隐藏了Derived 类中的函数,Derived2 类中函数 覆盖了Base 中的函数。

防止头文件被多次包含出错,使用条件预处理指令:

#ifndef …….

#define……..

#endif………

程序生成的Exe 步骤 :

1. 预处理。---》 把头文件替代到 包含的Cpp 源文件中区。

2. 编译。------》 编译产生 XXX. Obj  文件。

3. 链接。 -----》 产生可以执行的文件 .exe 如果有.lib 的函数库,这时候和.obj 

                一起 产生 .exe 文件。

原创粉丝点击