06 2013 档案

摘要:对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例(注:抽象类即有纯虚函数 阅读全文
posted @ 2013-06-10 21:03 任智康 阅读(459) 评论(0) 推荐(0) 编辑
摘要:1 重载与覆盖 成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。 覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual关键字。令人迷惑的隐藏规则本来仅仅区别重载与覆盖并不算困难,但是C++的隐藏规则使问题复杂性陡然增加。这里“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。(2) 阅读全文
posted @ 2013-06-08 20:47 任智康 阅读(14082) 评论(1) 推荐(1) 编辑
摘要:要学习好网路编程,主要看以下几个方面:1、掌握概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等。2、在实际Windows网络通信软件开发中,异步非阻塞套接字是用的最多的。平常所说的C/S(客户端/服务器)结构的软件就是异步非阻塞模式的。3、在异步非阻塞模式下的通信,要借助于多线程来开发。4、许多文章都曾经介绍过用VC++进行Socket编程的方法,直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。但实际上网络编程概括为三种套接字方法:流式套接字(SOCK_STREAM)和数据报式套接字(SOCK_DGRAM)和原始套接字。流式套接字 阅读全文
posted @ 2013-06-04 14:17 任智康 阅读(7722) 评论(0) 推荐(1) 编辑
摘要:(1)什么是内联函数?内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。当你定义一个内联函数时,在函数定义前加上 inline 关键字,并且将定义放入头文件:inline voidf(inti,charc){// ...}任何在类的说明部分定义的函数都会被自动的认为是内联函数。内联函数必须是和函数体申明在一起,才有效。像这样的申明Inline Tablefunction(int I)是没有效果的,编译器只是把函数作为普通的函数申明,我们必须定义函数体。Inline tablefunction(intI) {returnI*I};这样我们才算定义了一个内联函数。我们可以把它作为 阅读全文
posted @ 2013-06-02 20:53 任智康 阅读(468) 评论(0) 推荐(0) 编辑
摘要:友元函数:说明: 在类型声明中将原型放入并在原型声明前加上关键字friend,但不要在定义时加上关键字friend,它的访问权限与类的成员函数的访问权限相同<声明而已为private,public,protect>作用: 把其他类中函数作为自己的友员成员函数,让特定的类成员成为另一个类的友元函数,而不必让整个类成为友元,但在使用时,必须小心排列各种声明和定义顺序(且需用到向前声明)向前声明格式:class 类名 ;//向前声明本类class 所用到的友员成员函数的类的类名 {....};//友元函数类的定义class 类名 {…}//本类的定义注意: 友元函数不要在类的内部定义,不 阅读全文
posted @ 2013-06-02 19:59 任智康 阅读(3859) 评论(0) 推荐(0) 编辑
摘要:编写类String 的构造函数、析构函数和赋值函数,已知类String 的原型为:class String{public:String(const char *str = NULL); // 普通构造函数String(const String &other); // 拷贝构造函数~ String(void); // 析构函数String & operate =(const String &other); // 赋值函数private:char *m_data; // 用于保存字符串};// String的普通构造函数 String::String(const char 阅读全文
posted @ 2013-06-02 19:30 任智康 阅读(927) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示