- 博客(16)
- 收藏
- 关注
原创 高质量c++(常见的内存错误及其对策)
常见的内存错误及其对策发生内存错误是件非常麻烦的事情。编译器不能自动发现这些错误,通常是在程序运行时才能捕捉到。而这些错误大多没有明显的症状,时隐时现,增加了改错的难度。有时用户怒气冲冲地把你找来,程序却没有发生任何问题,你一走,错误又发作了。常见的内存错误及其对策如下:
2005-12-31 21:47:00 1737
原创 高质量c++(内存分配方式)
内存分配方式有三种:(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用mal
2005-12-31 21:46:00 3402
原创 高质量c++(const成员函数)
const 成员函数任何不会修改数据成员的函数都应该声明为const 类型。如果在编写const 成员函数时,不慎修改了数据成员,或者调用了其它非const 成员函数,编译器将指出错误,这无疑会提高程序的健壮性。以下程序中,类stack 的成员函数GetCount 仅用于计数,从逻辑上讲GetCount 应当为const 函数。编译器将指出GetCount 函数中的错误。class Stack{p
2005-12-30 16:33:00 14295 5
原创 高质量c++(重载、覆盖、隐藏)
成员函数的重载、覆盖与隐藏成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相
2005-12-30 13:19:00 19979 7
原创 高质量c++(extern c)
如果C++程序要调用已经被编译后的C 函数,该怎么办?假设某个C 函数的声明如下:void foo(int x, int y);该函数被C 编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字用来支持函数重载和类型安全连接。由于编译后的名字不同,C++程序不能直接调用C 函数。C++提供了一个C 连接交换指定符号extern“C”来解决这个问题。例如:ex
2005-12-30 13:16:00 4466 1
原创 高质量c++(如何在派生类中实现类的基本函数)
如何在派生类中实现类的基本函数基类的构造函数、析构函数、赋值函数都不能被派生类继承。如果类之间存在继承关系,在编写上述基本函数时应注意以下事项:
2005-12-30 12:08:00 2935
转载 Windows编程从入门到精通
http://blog.donews.com/xzwenlan/archive/2004/12/26/216127.aspx学习Windows编程是很复杂的事,大多数程序员使用C++进行Windows编程,可是如何把两者结合起来学习?本文试着给你一个答案[ 查看本指南所提及的书籍 ] 一般计算机本科学生应该学过Pascal或C语言,如果你没接触过C++,推荐两本书,清华出版社钱能的《
2005-12-26 19:41:00 1932
转载 同步、异步、阻塞、非阻塞
http://www.graphics.net.cn/bbs/c_or_cpp/0187/059.asp同步异步与阻塞和非阻塞是两种不同的概念来着同步异步指的是通信模式,而阻塞和非阻塞指的是在接收和发送时是否等待动作完成才返回所以不能混淆这四个磁。以下是我的一些理解,请大家多指教首先是通信的同步,主要是指客户端在发送请求后,必须得在服务端有回应后才发送下一个请求。所以这个时候的所有请求将会在服务端
2005-12-13 20:21:00 1574
转载 SOCKET类的设计和实现
http://spaces.msn.com/members/BeautyPiece/Blog/cns!1prwCGVUpp0aLwX4cLLjwESg!154.entrySOCKET类的设计和实现WinSock基本知识 这里不打算系统地介绍socket或者WinSock的知识。首先介绍WinSock API函数,讲解阻塞/非阻塞的概念;然后介绍socket的使用。WinSock API Socke
2005-12-12 22:12:00 1162
原创 IOCP模型和其它模型(如select模型)的区别
http://community.csdn.net/Expert/topic/4453/4453593.xml?temp=.8793756 “Windows NT小组注意到这些应用程序的性能没有预料的那么高。特别的,处理很多同时的客户请求意味着很多线程并发地运行在系统中。因为所有这些线程都是可运行的[没有被挂起和等待发生什么事],Microsoft意识到NT内核花费了太多的时间来转换运行线程
2005-12-12 15:04:00 6743 2
转载 ADO数据库编程
http://computer.mblogger.cn/wangzilue/posts/19838.aspx ADO数据库编程ADO数据库编程文档简介: 本文简要介绍了在VC++ 6.0中使用 ADO进行客户端数据库编程的基本步骤,以及常见问题的解决方法,可供入门级的参考之用。关键字: ADO VC++ 数据库编程目录: 在VC++中使用ADO编程 使用#import方法的编程步骤 使用
2005-12-11 20:17:00 1904
转载 使用ADO
http://community.csdn.net/Expert/topic/4163/4163865.xml?temp=9.490603E-02/***********************ADO接口简介 ***********************************/ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口
2005-12-11 20:12:00 922
转载 Windows Socket I/O模型全接触
http://www.cdown.net/Info/34347.html本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。 一:select模型 二:WSAAsyncSelect模型 三:WSAEventSelect模型 四:Overlapped I/O 事件通知模型 五:Overlapped I/O 完成例程模
2005-12-11 13:43:00 1047
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人