C++
文章平均质量分 67
kevin_ysu
这个作者很懒,什么都没留下…
展开
-
MFC中文件读写操作
<br />由于要写个游戏工具方便编程,要用到文件类的操作,看到这篇文章不错,特转载 <br /> <br /> <br />计算机室如何管理自身所存放着的大量的信息的呢?windows的磁盘管理程序为我们提供了一套严密而又高效的信息组织形式--硬盘上的信息是以文件的形式被管理的。<br />面向存储的文件技术<br />什么是文件?计算机中,一篇文章、一幅图片、一个程序等都是以文件的形式存储在磁盘上的,每个文件都有一个文件名。计算机就是对文件按名存取的。文件名的格式如下:主文件名.扩展名。为什么要在程转载 2011-04-19 21:21:00 · 8618 阅读 · 0 评论 -
C++对象的内存分布和虚函数表
c++中一个类中无非有四种成员:静态数据成员和非静态数据成员,静态函数和非静态函数。 1.非静态数据成员被放在每一个对象体内作为对象专有的数据成员。 2.静态数据成员被提取出来放在程序的静态数据区内,为该类所有对象共享,因此只存在一份。 3.静态和非静态成员函数最终都被提取出来放在程序的代码段中并为该类所有对象共享,因此每一个成员函数也只能存在一份代码实体。在c+转载 2011-11-10 22:29:46 · 780 阅读 · 0 评论 -
stringstream的用法
使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了风格的转换,也许你首先会问:为什么要花额外的精力来学习基于的类型转换呢?也许对下面一个简单的例子的回顾能够说服你。假设你想用sprintf()函数将一个变量从int类型转换转载 2012-03-28 11:08:04 · 495 阅读 · 0 评论 -
static_cast
用法:static_cast ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成派生类表示原创 2012-04-26 14:09:09 · 535 阅读 · 0 评论 -
C++中的引用
一 引用是什么?声明引用和使用引用时应该注意什么? 答:引用不是一种变量类型,只是一个变量的“别名”; 声明一个变量的引用时一定要初始化; 使用引用时要注意,一个变量的引用和这个变量对应这同一片内存。二 使用引用作为函数形参有什么特点1 因为引用和其所引用的变量对应同一片内存区域,所以使用引用作为 函数形参起到“传地址”的效果。2 使用引用原创 2012-05-28 17:48:05 · 464 阅读 · 0 评论 -
C++虚拟析构函数
c++ primer:如果所写的类要充当基类,那么,这个类的析构函数就必须声明为虚拟函数,否则可能造成内存泄漏。造成内存泄漏的例子:有如下两个类,类pet是基类,类dog继承了类petclass pet{}class dog : public pet{dog(const char * =NULL);~dog();}dog::dog(const char原创 2012-05-28 17:44:09 · 540 阅读 · 0 评论 -
Boost Graph Library 快速入门
Boost Graph Library 快速入门 图领域的数据结构和算法在某些方面比容器更为复杂,图算法在图中移动有着众多的路线,而STL使用的抽象迭代器接口不能有效的支持这些。作为替换,我们为图提供了一个的抽象的结构,其与容器迭代器的目的类似(尽管迭代器扮演着更大的角色)。图1 描述了STL 和BGL 之间的对比 图1: The anal转载 2012-05-11 17:51:23 · 3420 阅读 · 0 评论 -
C++程序编译过程
1)用户点击编译程序时,编译程序将C++源代码转换成目标代码,目标代码通常由 机器指令和记录如何将程序加载到内存的信息组成。其后缀通常为.obj或.o;2)目标文件中存储的只是用户所编写的代码的转换结果,并不包括底层的操作指令,不能直接运行。例如程序包 iostream 实现了所有有关输入和输出的操作,并且其所有实现操作的机器代码都放在一个库中,库是对已实现的程序经编译后所产生的代码集合,用户转载 2012-05-30 16:50:57 · 675 阅读 · 0 评论 -
#ifdef DEBUG的理解
1#ifdef _DEBUG virtual void AssertValid() const; //assert(断言)valid(有效的,正确的)virtual void Dump(CDumpContext& dc) const; //存储上下文#endif这两个函数是调试用的,第一个函数检查可用性,即是否有效 第二个函数如果未更改的话,最终调用的是Cwnd::Dump转载 2012-05-21 18:13:33 · 1802 阅读 · 0 评论 -
const 类型的函数不能返回非const类型的引用
如果用const来修饰函数,那么函数一定是类的成员函数。const 类型的函数不能返回非const类型的引用这句话的意思是如果你的函数是const类型的,并且要求返回值是类的非cosnt或者非mutable成员变量,返回类型是引用,那么这是错误的。class Test{public :int & GetValue()const;private:int value;转载 2012-05-21 18:16:04 · 1252 阅读 · 0 评论 -
Const,Const函数,Const变量,函数后面的Const (zz)
看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书转载 2012-05-22 16:23:15 · 633 阅读 · 0 评论 -
VC++中关于TCHAR,WCHAR,LPSTR,LPWSTR,LPCTSTR的解释
一般来说,一个字符(character)占用1字节或是2字节,我们说1字节的字符是ANSI,他可以用来表示英语字母,而2字节的我们称之为Unicode,可以表示世界上所有的语言。。VC++使用char和wchar_t的内置数据类型来分别作为表示ANSI和Unicode字符。如果你想让你的C/C++程序是字符集无关的,该怎么做呢?如果你用通常的字符集来写,你可能会写成这样的。ch转载 2012-06-25 15:47:28 · 3296 阅读 · 0 评论 -
C++中避免内存泄露常见的解决方案
常见内存泄露及解决方案-选自ood启示录new/delete, array new/arrray delete匹配case 1:在类的构造函数与析构函数中没有匹配地调用 new/delete! 解决方法:检查构造函数,在出现new的情况下,按相反的顺序在析构函数中匹配添加delete!这里有两个意思: 1〉new与delete匹配,array new/array转载 2012-07-27 09:59:10 · 8759 阅读 · 0 评论 -
Google C++编程风格指南(四):智能指针和其他C++特性
Google有很多自己实现的使C++代码更加健壮的技巧、功能,以及有异于别处的C++的使用方式。1. 智能指针(Smart Pointers)如果确实需要使用智能指针的话,scoped_ptr完全可以胜任。在非常特殊的情况下,例如对STL容器中对象,你应该只使用std::转载 2011-08-29 17:11:42 · 782 阅读 · 0 评论 -
c++面向对象编程必备“良方”
前言:c++面向对象中的繁琐机制,不得不让你在编程中频频“犯病”,找错误,找bug,困扰,是你的病源所在,本人虽不是什么“良医”, 却也算是总结出以下“良方”。注:难免会有记忆上的遗漏,知识上的不够,遗漏之处还需大家来补充啊!http://blog.csdn.net/zhanxi转载 2011-09-22 16:59:28 · 445 阅读 · 0 评论 -
MFC中的文件读写操作(2)(
<br />1.准确定位文件的路径操作文件的过程中,经常需要将文本文件放在程序自身的目录中,但是如果仅仅在程序中使用不指定任何路径信息的相对路径,如: myFile.Open("MyFile.txt",CFile::modeCreate|CFile::typeText|CFile::modeReadWrite); 那么就有可能出现不能正确定位的情况,准确定位文件位置的方法是获得可执行程序自身的绝对路径,如: TCHAR FilePath[MAX_PATH]; GetModuleFileName(NULL,F转载 2011-04-19 21:53:00 · 1140 阅读 · 0 评论 -
深入探讨C++中的引用
引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛转载 2011-09-15 09:50:05 · 317 阅读 · 0 评论 -
一个非常不错的哈希表的模板类 .
template struct HashTableNode...{ T varValue; N varName; HashTableNode *next; N Scope; N alias; //will hold t转载 2011-09-15 13:53:00 · 780 阅读 · 0 评论 -
链表
//Author : akira//Program name : 链式结构的线性表//Content : 生成,插入,删除,定位,查找#include #include #de转载 2011-09-15 13:59:21 · 495 阅读 · 0 评论 -
链表的模板实现
//链表的模板实现 //By KiRa 07/08/28#include using namespace std;/*Length = 0IsEmpty = 1List is 2 6IsEmpty = 0First element i转载 2011-09-15 14:01:02 · 409 阅读 · 0 评论 -
详细解说 STL 排序(Sort)
作者Winter 出处:http://www.stlchina.org/twiki/bin/view.pl/Main/STLSortAlgorithms0 前言: STL,为什么你必须掌握 ---------------------------------------转载 2011-09-15 14:08:05 · 367 阅读 · 0 评论 -
用完成端口开发大响应规模的Winsock应用程序
原文出处:http://msdn.microsoft.com/msdnmag/issues/1000/Winsock/通常要开发网络应用程序并不是一件轻松的事情,不过,实际上只要掌握几个关键的原则也就可以了——创建和连接一个套接字,尝试进行连接,然后收发数据。真正难的是要写出转载 2011-09-15 14:12:07 · 383 阅读 · 0 评论 -
智能指针
首先来看SmartPtr的定义:#pragma once#include assert.h>///////////////////////////////////////////////////// a simple smart pointer wrap转载 2011-09-15 13:52:04 · 319 阅读 · 0 评论 -
C++类库介绍
在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞转载 2011-09-15 14:02:46 · 459 阅读 · 0 评论 -
C++多态技术
C++多态技术原文出处:http://www.royaloo.com/articles/articles_2003/PolymorphismInCpp_content.htm 摘要本文描述了C++中的各种多态性。重点阐述了面向对象的动态多态和基于模板的转载 2011-09-15 14:04:23 · 317 阅读 · 0 评论 -
CString 操作指南
原文出处:codeproject:CString Management通过阅读本文你可以学习如何有效地使用 CString。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,转载 2011-09-15 14:08:57 · 403 阅读 · 0 评论 -
AVL树的模板实现
A. Second EditionThis is second edition of my AVL Tree and the reason I restart this project is that I was blamed for not finishing remove转载 2011-09-15 14:16:49 · 565 阅读 · 0 评论