- 博客(40)
- 资源 (6)
- 收藏
- 关注
原创 InstallShield.12.豪华完全版 安装与激活说明
<br />下载 InstallShield.12.豪华完全版<br /> <br />安装过程:<br />1. 断开网络,进行离线安装<br />2. 安装 "/离线安装必须/" 下的所有可执行文件,如果提示已有,则没必要安装了<br />3. 运行 [InstallShield.12.豪华完全版].installshield12.Premier.Edition.exe<br /> <br />激活过程:<br />1. 运行installshield12时,提示激活, 随便输入数字,点下一步后,出错,
2010-08-18 10:18:00 10873 4
原创 union, struct, enum 的 大小区别
typedef enum{ ANUnknown = 0, ANShapeFile = 1, ANSDEDatabase = 2, ANFileDatabase = 3, ANRasterFile = 4}ANDataType;sizeof(ANDataType) 为 4=============================================
2010-05-30 17:28:00 4813 5
原创 const可以出现在函数头,参数列表,以及参数尾
const可以出现在函数头,参数列表,以及参数尾 如: const int& SetPoint(const int& param) const 第一个const: 函数的返回值限定为const,即返回值不能被修改. const int a=SetPoint(...) a在此之后便不能被修改 第二个const:就是你所问的const 指函数的形参为const类型,函数
2009-04-24 13:44:00 1185
原创 【转】一个简单的线程池(c++版)
#ifndef _ThreadPool_H_#define _ThreadPool_H_#pragma warning(disable: 4530)#pragma warning(disable: 4786)#include cassert>#include vector>#include queue>#include windows.h>class ThreadJob //工作基类{publi
2009-04-21 11:38:00 1031 1
转载 C++类类型的转换
说到类型转换,编写过程序的一定不会感到陌生。如: double d = 3.1415; int i = 2; d = d * i; 上面的代码可以正常编译和运行(也许有些编译器会发出警告)。在c++中,对这些不同的内置类型发生运算操作时候,会自动进行类型的匹配。一般是低精度的类型自动匹配到高精度的类型。而对于复杂的类型,如结构体和类
2009-04-20 17:20:00 943
原创 栈的C语言实现
1。栈的C语言实现-数组实现 #include #include #define DEP 3 int stack[DEP]; int top = -1; void push(int value) { if(top DEP - 1) stack[++top] = value; else
2009-04-03 21:44:00 591
原创 C++中的虚函数的作用
纯虚函数主要是你不知道这个函数如何定义,即你无法为其写出定义部分,这部分只有在子类中才能够正确表达,比如,我们要定义一个动物类,那它的呼吸方法怎么定义呢,是像鱼那样,还是像人那样,这个没法确定,只能在子类中去定义而虚函数则是肯定知道这个函数的定义,并且大部分子类对这方法的定义应该是差不多的,比如我们要定义一个树类,树都可以进行光合作用,大部分树其进行光合作用的方法都差不多吧,我们就可以将这个方法
2009-04-02 11:06:00 1313 1
原创 C++中虚函数的作用是什么?它应该怎么用呢?
虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。 下面是对C++的虚函数这玩意儿的理解。 一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始) 简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形象的语
2009-04-02 11:04:00 3405
原创 走近 STL
本文面向的读者:学习过C++程序设计语言(也就是说学习过Template),但是还没有接触过STL的STL的初学者。这实际上是我学习STL的一篇笔记,老鸟就不用看了。什么是泛型程序设计 我们可以简单的理解为:使用模板的程序设计就是泛型程序设计。就像我们我们可以简单的理解面向对象程序设计就是使用虚函数的程序设计一样。STL是什么 作为一个C++程序设计者,STL是一种不可忽视的技术。San
2009-04-01 22:22:00 614
原创 STL容器的基本特性和特征
1. STL有6种序列容器类型(1)vector它提供对元素的随即访问,在尾部添加和删除元素的时间是固定的,在头部或中部插入和删除元素的复杂度为线性时间。(2)deque在文件中声明。是双端队列,支持随即访问。从deque的开始与末尾位置插入和删除元素的时间是固定的。尽管vector和deque都提供对元素的随机访问和在序列中部执行线性时间的插入和删除操作,但vector容器执行这些操作时速度更
2009-04-01 20:27:00 1116
原创 堆和栈的区别(转)
堆和栈的区别(转贴,作者为一c++程序员,具体姓名不清楚) 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)—> 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)—> 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似
2009-03-09 22:31:00 568
原创 在你的C++程序里实现委托 (转)
[说明] 本文不仅介绍了C++语言应用非常好的一种方法(我甚至觉得应该将它归结为一种设计模式),而且也是对C#语言中委托特性底层实现的一个很好的说明。 阅读本文,你应当对委托的概念有所了解;在讨论委托是实现时,你应当对标准模板库(STL)中的list容器以及迭代器(iterator)有所了解。在这篇文章中,暂不讨论类成员函数。 1.C#中的委托
2009-03-02 10:12:00 888 1
原创 接口和委托的区别(转)
接口(interface)用来定义一种程序的协定。实现接口的类或者结构要与接口的定义严格一致。接口(interface)是向客户承诺类或结构体的行为方式的一种合同,当实现某个接口时,相当于告诉可能的客户:“我保证支持这个接口的方法,属性等”,接口不能实例化,接口只包含成员定义,不包含成员的实现,成员的实现需要在继承的类或者结构中实现。C#中的委托是一种引用方法的类型,一旦为委托分配了方法,委
2009-03-01 20:48:00 1311 1
原创 C++中使用接口(转)
面向对象的语言诸如JAVA提供了Interface来实现接口,但C++却没有这样一个东西,尽管C++ 通过纯虚基类实现接口,譬如COM的C++实现就是通过纯虚基类实现的(当然MFC的COM实现用了嵌套类),但我们更愿意看到一个诸如 Interface的东西。下面就介绍一种解决办法。首先我们需要一些宏://// Interfaces.h//#define Interface class#defi
2009-03-01 20:41:00 614
原创 在C++中用虚函数及模版实现委托(支持自定义参数)(转)
#include "stdio.h"class CObject{};class Event{ public: unsigned long EventType; public: Event(unsigned long EventType) { this->EventType = EventType; }};class Handler{ pub
2009-03-01 20:40:00 639 1
原创 委托与事件(转)
一、什么是委托 下面引用自 MSDN 委托类型声明的格式如下:public delegate void TestDelegate(string message); delegate 关键字用于声明一个引用类型,该引用类型可用于封装命名方法或匿名方法。委托类似于 C++ 中的函数指针;但是,与函数指针不同,委托是面向对象和类型安全的。 通过
2009-03-01 20:39:00 633
原创 如何测试内存泄露
初识Visual Leak Detector 灵活自由是C/C++语言的一大特色,而这也为C/C++程序员出了一个难题。当程序越来越复杂时,内存的管理也会变得越加复杂,稍有不慎就会出现内存问题。内存泄漏是最常见的内存问题之一。内存泄漏如果不是很严重,在短时间内对程序不会有太大的影响,这也使得内存泄漏问题有很强的隐蔽性,不容易被发现。然而不管内存泄漏多么轻微,当程序长时间运行时
2009-02-27 19:24:00 5494
原创 什么是多态(转)
一.什么是多态(Polymorphism)多态(Polymorphism)是面向对象(Object-Oriented,OO)思想"三大特征"之一,其余两个分别是封装(Encapsulation)和继承(Inheritance)--可见多态的重要性。或者说,不懂得什么是多态就不能说懂得面向对象。 多态是一种机制、一种能力,而非某个关键字。它在类的继承中得以实现,在类的方法调用中得以体现。
2009-02-22 21:30:00 5784 1
原创 Socket模型详解
Winsock 的I/O操作:1、 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字 默认为阻塞模式。可以通过多线程技术进行处理。 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。但功能强大。为了解决这个问题,提出了进行I/O操
2009-02-20 11:11:00 1290 1
原创 C++类继承关系
在C++中继承主要有三种关系:public、protected和private。这三种继承关系中public继承是最为常用的一种继承关系,代表了接口继承含义,而他们分别具体代表了什么含义呢? 1. public 从语义角度上来说,public继承是一种接口继承,根据面向对象中的关系而言就是,子类可以代替父类完成父类接口所声明的行为,也就是必须符合“Liskov替换原则(LSP
2009-02-20 10:40:00 1864
原创 多态
多态性主要体现在虚函数的调用 在C++中,虚函数的调用使用的是动态绑定,也有人说是晚捆绑,也就是在程序运行时才决定调用的函数。 上面的讲法比较抽象,举个例子 #include using namespace std; class Bird{ public: virtual void fly() { cout "Bird
2009-02-18 22:20:00 694
原创 类的对象和类的指针的区别
如下程序: #include #include using namespace std; class Student { public: static int number; string name; public: Student() { } void set(string str) { name = str; number++; // 调用静态数据成员 } void print()
2009-02-18 21:54:00 14190 7
原创 函数atoi,itoa 的实现
1.//整数转换成字符串itoa函数的实现 #include "stdafx.h"#include using namespace std;void itoaTest(int num,char str[] ){ int sign = num,i = 0,j = 0; char temp[11]; if(sign
2009-02-18 13:28:00 784
原创 public,private,protected 作用 区别
公有成员public member 在程序的任何地方都可以被访问实行信息隐藏的类将其public 成员限制在成员函数上这种函数定义了可以被一般程序用来操纵该类类型对象的操作 私有成员private member 只能被成员函数和类的友元访问实行信息隐藏的类把其数据成员声明为private 被保护成员protected member 对派生类derived class 就像 pu
2009-02-18 13:18:00 2508
原创 uinion数据类型
uinion数据类型是指不同的数据项存放于同一段内存单元的一种数据结构类型! 这么多的成员共同占同一个空间,空间大小由类型最大的确定,如下的空间就为一个float类型大小; 如: 一个共同体变量不是同时存放多个成员的值,而只能存放其中的一个值, 就是最后赋予它的值; union test { int a;
2009-02-15 23:14:00 1403
原创 不能使用任何库函数,编写memcpy函数
void* mymemcpy(void* pvTo, const char* pvFrom, size_t size){ assert((dest != NULL) && (src != NULL)); byte* psTo = (byte*)pvTo; byte* psFrom = (byte*)pvFrom; whi
2009-02-15 03:56:00 1009 1
原创 内存的思考题
void GetMemory(char *p){ p = (char *)malloc(100);} void Test(void) { char *str = NULL; GetMemory(str); strcpy(str, "hello world"); printf(str);} 结局:程序崩溃。因
2009-02-15 03:50:00 591 1
原创 编写类String的构造函数、析构函数和赋值函数
已知类String的原型为: class String{public: String(const char *str = NULL);// 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & operate =(c
2009-02-15 03:48:00 1626
原创 不调用C++/C的字符串库函数,请编写函数 strcpy
char *strcpy(char *strDest,const char *strSrc){ int n=0; while(strSrc[n]!=NULL) { n++: } *srtDest=new char[n]; for(int i=0;i {
2009-02-15 03:47:00 3057 2
原创 BOOL , float, 指针变量 与“零值”比较的 if 语句
提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为: if ( n == 0 ) if ( n != 0 )以此类推。 请写出 BOOL flag 与“零值”比较的 if 语句:请写出 float x 与“零值”比较的 if 语句:请写出 char *p 与“零值”比较的 if
2009-02-15 03:45:00 2475
原创 Test b();
struct Test{ Test( int ) {} Test() {} void fun() {}};void main( void ){ Test a(1); a.fun(); Test b(); b.fun();}*** Test b();//定义了一个函数 应该改为:
2009-02-15 03:42:00 715
原创 代码中的输出语句输出0吗,为什么
struct CLS{ int m_i; CLS( int i ) : m_i(i) {} CLS() { CLS(0); }};CLS obj;cout --- 不是, 我个人是这样理解的:因为在CLS()中调用了CLS(0),所以在CLS()中又构造出一个CLS匿名对象,并用0来初始化该成员变量,而不是oj
2009-02-15 03:41:00 860
原创 3对字符串比较,为什么结果不一样?
char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char* str5 = "abc"; const char* str6 = "abc
2009-02-15 03:32:00 688
原创 局部变量、全局变量、静态变量
静态变量的类型说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。对于自动变量,它属于动态存储方式。 但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。 由此看来, 一个变量可由st
2009-02-15 03:26:00 2059 2
原创 把一个链表反向填空
void reverse(test* head) { test* pe = head; test* ps = head->next; while(ps) { pe->next = ps->next; ps->next = head; head = ps; p
2009-02-15 03:25:00 2088
原创 实现双向链表删除一个节点P,在节点P后插入一个节点
双向链表删除一个节点P template void list::delnode(int p){ int k=1; listnode *ptr,*t; ptr=first; while(ptr->next!=NULL&&k!=p) { ptr=ptr->next; k++; }
2009-02-15 03:23:00 4293
原创 Socket模型详解
Winsock 的I/O操作:1、 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字 默认为阻塞模式。可以通过多线程技术进行处理。 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。但功能强大。为了解决这个问题,提出了进行I
2009-02-15 03:21:00 1164
原创 C++类继承关系
C++类继承关系问题 在C++中继承主要有三种关系:public、protected和private。这三种继承关系中public继承是最为常用的一种继承关系,代表了接口继承含义,而他们分别具体代表了什么含义呢? 1. public 从语义角度上来说,public继承是一种接口继承,根据面向对象中的关系而言就是,子类可以代替父类完成父类接口所声明的行为,也就是必须符合
2009-02-15 03:17:00 14962
原创 静态数据成员/函数 与 非静态数据成员/函数 关系
静态数据成员/静态成员函数 静态数据成员/静态成员函数 与静态数据成员/静态成员函数 之间的关系,以及之间如何相互调用。 1. 静态成员函数 可以直接访问 静态数据成员/静态成员函数如例程所示:#include #include using namespace std; class Student { static int numb
2009-02-14 23:47:00 1943
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人