Browsing the archives for the c++ tag

vc6.0中的消息映射机制

in 网络编程

看一下vc6.0自动生成的这段代码,你可能就明白什么一些了

BEGIN_MESSAGE_MAP(CFFDlg, CDialog) //{{AFX_MSG_MAP(CFFDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_JUMP, OnJump) ON_BN_DOUBLECLICKED(IDC_Stop, OnDoubleclickedStop) //}}AFX_MSG_MAPEND_MESSAGE_MAP()
BEGIN_MESSAGE_MAP(CFFDlg, CDialog)

//{{AFX_MSG_MAP(CFFDlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BUTTON1, OnButton1)

ON_BN_CLICKED(IDC_JUMP, OnJump)

ON_BN_DOUBLECLICKED(IDC_Stop, OnDoubleclickedStop)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

0 Comments

C++引用与指针的比较

in 网络编程

引用是C++中的概念,初学者容易把引用和指针混淆一起。
一下程序中,n是m的一个引用(reference),m是被引用物(referent)。
int m;
int &n = m;
n相当于m的别名(绰号),对n的任何操作就是对m的操作。
所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。

引用的规则:

(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。
(2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。
(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。

0 Comments

C++虚拟函数实现多态性分析

in 网络编程

面向对象程序设计的基本观点是用程式来仿真大千世界,这使得它的各种根本特性非常人性化,如封装、继承、多态等等,而虚拟函数就是c++中实现多态性的主将。为了实现多态性,c++编译器也革命性地提供了动态联编(或叫晚捆绑)这一特征。

虚拟函数亦是mfc编程的关键所在,mfc编程主要有两种方法:一是响应各种消息,进行对应的消息处理。二就是重载并改写虚拟函数,来实现自己的某些要求或改变系统的某些默认处理。

0 Comments

C++ main()函数及其参数

in 网络编程

main()函数及其参数
C++标准允许主函数main()有或没有参数列表。 您能在主函数main()中使用一个或更多的参数。 如下是一些惯例:
int main(int argc, char *argv[])
第一个参数argc,指明有多少个参数将被传递给主函数main(),真正的参数以字符串数组(即第2个参数argv[])的形式来传递。每一个字符串均有自己意思。在这句法上面, 记住, argc代表参数的数量, main()函数本身是在索引0为的第一参数。 所以, argc总是至少为1 。它的总数是从argv列阵的元素数目。 这意味着, argv[0]的值是至关重要的。 如果用户在控制台环境中程序名称后键入含参数的指令, 那么随后的参数将传递给argv[1] 。 例如, 如果程序名称为main,并且已经事先编译好了,这时如果用户键入:
D:\MyPrograms\AConsoleApp\main 68

0 Comments

main(argc,argv) 中的参数(C++/MFC)

in 网络编程

每一c 程序都必须有一main()函数, 可以根据自己的爱好把它放在程序的某个地方。有些程序员把它放在最前面, 而另一些程序员把它放在最后面, 无论放在哪个地方, 以下几点说明都是适合的。
main() 参数
在turbo c2.0启动过程中, 传递main()函数参数: argc, argv。
argc: 整数, 为传给main()的命令行参数个数。
argv: 字符串数组。
在dos 3.x 版本中, argv[0] 为程序运行的全路径名; 对dos 3.0以下的版本, argv[0]为空串(“”) 。
argv[1] 为在dos命令行中执行程序名后的第一个字符串;
argv[2] 为执行程序名后的第二个字符串;

0 Comments

详细讲解C++ 类的继承

in 网络编程

一个私有的或保护的派生类不是子类,因为非公共的派生类不能做基类能做的所有的事,就是指在公开场合,但是在类内部可以的
一、引言

在C++中,类是提供封装的逻辑单位,类的每一个对象都包含有描述其自身状态的数据集合,并且通过接收特定的消息来处理这个数据集合。如果程序设计人员能够通过增加、修改或替换指定类的部分内容的方法对该类进行剪裁,就可以适应不同的应用,从而在很大程度上增强了数据封装的价值,而接下来要讨论的继承就完全可以实现这种操作。

0 Comments