C&C++
文章平均质量分 75
btooth
这个作者很懒,什么都没留下…
展开
-
Socket编程原理(2)
Windows Socket 网络编程 —— 套接字编程原理 一、客户机/服务器模式在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Server model)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的。客户机/服务器模式在操作过程中采取的是主动请示方式:首先服务器方要先启动,并根据请示提供相应服务:(过程如下)1、打开一通信通道转载 2006-09-14 11:27:00 · 1854 阅读 · 0 评论 -
C++头文件
头文件每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。1.1 版权和版原创 2006-07-17 15:25:00 · 15080 阅读 · 8 评论 -
操作符重载浅析
操作符重载浅析下面的文章记录的是,我在研究了C++ Primer的操作符重载这一章,并结合自己之前遇到过的操作符重载相关知识之后,对操作符重载的理解,内容不是很深,主要涉及到的是操作符重载经常使用的环节,对于一些比较深的以及比较复杂且不常用的,我没有做深入的研究,因为我认为即使花时间把它们研究了,以后也不一定用的上,再加上如果常时间不用,这些比较难的知识点也就慢慢忘记了,所以与其如此,到不如把原创 2006-07-26 17:14:00 · 9135 阅读 · 5 评论 -
类模板浅析
一、为什么使用类模板如果一个类,它对自己要使用到的数据类型不确定,也可以理解成为了提高类的通用性,碰到这种情况时,我们就可以考虑使用类模板。例如C++的类List、Vector,它们实际上就是一种类模板。以队列类为例进行说明:队列是一种专门用于对象集合的数据结构,它的行为是先进先出。Class Queue{ public: Q原创 2006-07-25 18:02:00 · 2034 阅读 · 2 评论 -
经典题目:strcpy函数
题目:已知strcpy函数的原型是:char * strcpy(char * strDest,const char * strSrc);1.不调用库函数,实现strcpy函数。2.解释为什么要返回char *。解说:1.strcpy的实现代码char * strcpy(char * strDest,const char * strSrc){if ((strDest==NULL)||(strSr原创 2006-08-05 15:32:00 · 9920 阅读 · 5 评论 -
网络socket编程指南
网络socket编程指南 http://www.chinaunix.net 作者:流浪者 发表于:2003-04-11 17:09:07转载 2006-08-07 09:14:00 · 1385 阅读 · 0 评论 -
静态链接库和动态链接库(转)
我们可以创建一种文件里面包含了很多函数和变量的目标代码,链接的时候只要把这个文件指示给链接程序就自动地从文件中查找符合要求的函数和变量进行链接,整个查找过程根本不需要我们操心。这个文件叫做 “库(Libary)”,平时我们把编译好的目标代码存储到“库”里面,要用的时候链接程序帮我们从库里面找出来。静态链接库: 在早期库的组织形式相对简单,里面的目标代码只能够进行静态链接,所以我们称为“静态库”,转载 2006-08-16 17:47:00 · 7772 阅读 · 1 评论 -
在派生类中使用对象成员时,构造函数和析构函数的作用过程。
请看如下一段代码:class A {public:A () { pValue = new int[100]; printf("Constructor of A/n"); }~A () { delete [] pValue; printf("Deconstructor of A/n"); }private:int * pValue;}; class B {public:~B () { prin原创 2006-08-11 15:06:00 · 2077 阅读 · 0 评论 -
namespace名字空间小解
一、标准名字空间的理解: using namespace std;就是标准名字空间的引用,std是C++标准库中的名字空间名称。大家都知道,当我们定义了一个类,而声明对象的时候就要用到 class_name 后跟对象名称,标准名字空间也是这个用法。 其实,我们可以按照一个更为抽象包含更广的类来理解标准名字空间。#include中的iostream正是包含在这个标准名字转载 2006-08-11 15:57:00 · 1944 阅读 · 0 评论 -
反思引入头文件和宏定义
宏的作用之一是:保证用户自定义头文件和系统定义头文件在编译源程序时只引入一次。比如有一个用户自定义头文件a.h,它的内容是:---------------------#ifndef __BTDISCOVERYAPPVIEW_H__#define __BTDISCOVERYAPPVIEW_H__#include #include #include #include #include原创 2006-07-08 10:01:00 · 2627 阅读 · 0 评论 -
宏和内联函数的区别
介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如#define TABLE_COMP(x) ((x)>0?(x):0) 就定义了一个宏。 为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转载 2006-07-07 17:16:00 · 3043 阅读 · 0 评论 -
指针和引用的区别
一、C++中引用和指针的区别指针初始化的时候,可以指向一个地址,也可以为空。引用必须初始化为另一个变量. int ival = 1024; int *pi = &ival; // a pointer int &rval = ival; // a reference二、估计很多人在编写C++程序都或多或少的会用到pointer 和 reference这两种东西,但是他们两者到底有什么样转载 2006-07-07 09:50:00 · 6681 阅读 · 0 评论 -
Socket编程原理(1)
[精华] socket编程原理socket编程原理 socket编程原理 1 问题的引入 UNIX系统的I/O命令集,是从Maltics和早期系统中的命令演变出来的,其模式为打开一读/写一关闭(open-write-read-close)。在一个用户进程进行I/O操作时,它首先调用“打开”获得对指定文件或设备的使用权,并返回称为文件描述符的整型数,以描述用户在打开的文件或设备上进行I/O转载 2006-09-14 11:22:00 · 2557 阅读 · 0 评论 -
帮你详细理解端口
一、什么叫端口号 端口号---具有网络功能的应用软件的标识号。注意,端口号是不固定的,即可以由用户手工可以分配(当然,一般在软件编写时就已经定义)。当然,有很多应用软件有公认的默认的端口,比如FTP:20和21,HTTP:80,TELNET:23等等,这里就不一一列举了。一个软件可以拥有多个端口号,这证明这个软件拥有不止一个网络功能转载 2006-09-14 11:49:00 · 8421 阅读 · 3 评论 -
C++数据类型之一:常量和变量
C++数据类型之一:常量和变量一、文字常量:常量之所以称为“文字常量”,其中“文字”是指我们只能以它的值的形式指代它,“常量”是指它的值是不可变的。同时注意一点:文字常量是不可寻址的(即我们的程序中不可能出现获取所谓常量20的存储地址&20这样的表达式),虽然常量也是存储在内存的某个地方,但是我们没有办法访问常量的地址的。常量是有类型的:1、 字符型char:一个字节表示,通原创 2006-09-28 13:31:00 · 4273 阅读 · 0 评论 -
C++数据类型之二:指针
基本数据类型之二:指针一、指针:指针都有一个数据类型,指针的类型可以指示编译器怎么解释特定地址上内存的内容,以及该内存区域应该跨越过多少内存单元。ü 如果一个int 型的指针寻址到1000 内存处那么在32 位机器上跨越的地址空间是1000~1003ü 如果一个double 型的指针寻址到1000 内存处那么在32 位机器上跨越的地址空间是1000~原创 2006-09-29 11:24:00 · 3675 阅读 · 0 评论 -
C++派生类型的作用
在公有继承时,派生类的public,private,protected型的成员可以访问基类中的公有成员和保护成员,派生类的对象公可以访问基类的公有成员.在私有(private)继承时,派生类的public,private,protected型的成员函数可以访问基类公有成员和保护成员,但派生类的对象不可以访问基类的任何成员.Protected的继承方式与private继承相同.基类原创 2006-09-30 11:40:00 · 2978 阅读 · 0 评论 -
DLL的Export和Import
DLL的Export和ImportDLL的export是指将DLL中的函数和数据输出到其它程式中,以供其使用。DLL的import是指使用DLL的程式引入DLL中的函数和数据。 DLL的export DLL中包含有一个表,称为export table(以下简称ET),其中包含了DLL中可以被外部程式使用的所有函数和数据的名字。只有记录在ET中的函数和数据才可以被外部程式所使用(如果转载 2006-06-10 13:58:00 · 1986 阅读 · 0 评论 -
typedef和#define的用法与区别
一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性转载 2006-06-10 23:19:00 · 1487 阅读 · 0 评论 -
C++中的纯虚函数
一、定义.纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”virtual void funtion1()=0二、引入原因:1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身原创 2006-06-30 16:01:00 · 2113 阅读 · 0 评论 -
visual C++ 6.0开发工具与调试
1、 如何快速地规范代码缩进格式选中所需要规范的代码,按shift+F82、 如何在Release状态下进行调试Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Progra转载 2006-08-18 14:26:00 · 1364 阅读 · 0 评论