C++
文章平均质量分 64
__lhy
Oh,I am programmer。
展开
-
c++类的内存布局
原文地址:点击打开链接本文基本上是对于Stanley B.Lippman的Inside The C++ Object Model一书第一章第三章的概括,描述了c++类的内存布局情况.c++的类的内存布局有如下规则:1. Nonstatic data member 存放在Class转载 2011-07-29 10:18:18 · 1264 阅读 · 0 评论 -
任意维矩阵相乘-C实现
// matrix.cpp : Defines the entry point for the console application.// write by lhy // http://blog.csdn.net/qq752923276/article/details/7505675 #include "stdafx.h"#include #include #include原创 2012-04-25 19:04:11 · 12585 阅读 · 1 评论 -
字符串字符显示与16进制显示之间的相互转换
//Function to convert unsigned char to string of length 2 void Char2Hex(unsigned char ch, char* szHex) { unsigned char byte[2]; byte[0] = ch/16; byte[1] = ch%16; for(int i=0; i<2; i++) {转载 2012-04-20 22:29:26 · 1653 阅读 · 0 评论 -
[C++]限制一个类的对象只能在栈或堆上创建
转自:http://blog.sina.com.cn/s/blog_48a4b1680100gnbl.html限制对象在堆中创建,private或protected析构函数限制对象在栈中创建,private或protected new operator及new operator []例:class X{private: static void* operator ne原创 2012-05-09 16:01:11 · 1590 阅读 · 0 评论 -
itoa以及atoi C实现
itoa以及atoi两个函数实现应该是面试中的常见题,现在先预备写两个,以便需要的时候的快速反应int atoi(char* str){ if(!str) return 0; int ret=0; int flag=1; while(*str==' ')++str; if('-'==*str) flag=-1,++str; else if('+'原创 2012-06-06 10:20:43 · 1313 阅读 · 0 评论 -
C++线程池
http://www.codeproject.com/Articles/11976/Win32-Thread-Pool我在原基础上作了一下修改:线程等待Handle重置和销毁延时问题。// Filename : RunObject.h// Author : Siddharth Barman// Date : 18 Sept 2005// Description : Def原创 2012-08-07 17:54:02 · 2048 阅读 · 1 评论 -
list实现
#ifndef LIST_T_H#define LIST_T_H//update time :2012-07-30 11:54:12templateclass list_t{ struct data { T t; data *next; }; data *_start,*_end; typedef unsigned int size_t; size原创 2012-07-02 17:21:12 · 1137 阅读 · 0 评论 -
【转】C++ friend存在的意义
C++区看到网友讨论,其中说的比较清晰的是dingqiang107,特转过来友元只对特定目标开放,而public对所有目标开放,两者作用不同,不可相互替代。你举的这个例子是不对的。只允许部分类或函数访问自己的私有成员,其它人不行,这件事非友元不能做。友元并没有破坏封装。将何人设成友元,或者说允许谁来访问本类的私有成员,完全是由本类的作者决定的,如同将哪些成员设成公共成员一样。publi原创 2013-02-20 16:42:31 · 1340 阅读 · 0 评论 -
控制台输入密码
#include #include void GetPassword(){ char c = 0; while(true) { if(c == 8) //退格 { putchar('\b'); putchar(' '); putchar('\b'); } else if(c == 13)//回车 { break; } else原创 2013-04-24 18:07:39 · 1284 阅读 · 0 评论 -
【转】纯虚函数调用 pure virtual function call 错误
http://blog.csdn.net/blue_dream_/article/details/2259649?reload基类中定了纯虚拟函数,派生类中将其实现,但在某些情况下会出现 r6025 runtime error, pure virtual function call 这样的错误。 在基类某个函数中调用该纯虚函数,本意是为了使用多态,转载 2013-05-27 11:51:00 · 2082 阅读 · 0 评论 -
MyCode代码生成器v1.0.0.2(BCB版)
BCB开发管理系统之类的软件非常方便,而管理系统离不开数据库,对于我们开发人员而言,编写数据库操作代码比较繁琐,每次一个项目都得重新或大部分编写数据库操作代码,同时还得面对代码中可能存在的bug,有鉴于此,本人编写了MyCode-代码生成器,让我们一键生成对数据库操作的代码(cpp、h文件),直接调用即可,节约时间精力,减少出错几率。如果发现代码生成器存在bug或者对代码生成器有什么好的意见,原创 2014-01-13 14:52:44 · 1671 阅读 · 0 评论 -
获取网站存放在本地cookie
注:此方法获取的cookie仅限于使用IE访问过的网站#include #include #include #pragma comment(lib,"winInet.lib")#include using namespace std;//---------------------------------------------------------------------------原创 2012-03-17 18:06:56 · 4633 阅读 · 0 评论 -
C类型提升
类型提升有两种情况:1. 符号扩展:对于有符号数,扩展存储位数的方法。在新的高位字节使用当前最高有效位即符号位的值进行填充。2. 零扩展:对于无符号数,扩展存储位数的方法。在新的高位直接填0.原创 2012-03-17 09:37:11 · 1055 阅读 · 0 评论 -
C++中的const指针
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 char * const cp; ( * 读成 pointer to转载 2012-03-08 11:52:17 · 758 阅读 · 0 评论 -
析构函数声明为protected的原因
原帖:点击打开链接对于堆中的对象,我们通常用new/delete来创建/销毁。当调用new时,它会自动去调用相应类的构造函数。同样,当调用delete时,它会自动去调用相应类的析构函数。当我们在栈中产生对象时,前面说的过程是自动完成的。即:不需要我们显式调用new/delete。转载 2011-07-29 15:54:39 · 1603 阅读 · 0 评论 -
生成序列号
/**************************获得序列号格式:XXX0000XXXXX 如:LHY0000123456*************************//***************************注:此处ID范围为0~4294967295**原创 2011-09-20 16:40:24 · 1376 阅读 · 0 评论 -
C++匿名对象生存期
class Some{int n;public: Some(int s){n=s;} ~Some(){ cout<< "destroy\n"; } int ret(){return n;}};int main(int argc, char* argv[]){ cout<<Some(111).ret()<<"\n"; cout<<"原创 2011-08-24 15:44:01 · 2525 阅读 · 0 评论 -
关于C++类静态成员及函数的访问
一直有个误区,即C++中类的静态成员、函数只能用class::some、 class::function()的形式引用,平时都是这样用都没深究,汗!实际上类的静态成员及函数相当于类的一个公共区,类对象都能引用。原创 2011-12-31 15:30:20 · 1134 阅读 · 0 评论 -
讲讲volatile的作用
转自:点击打开链接一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份(因为读取寄存器比读内存要快的多,所以会优化。)。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2原创 2012-02-13 15:17:40 · 814 阅读 · 0 评论 -
解析xml
点击打开链接原创 2012-02-18 10:31:45 · 781 阅读 · 0 评论 -
C语言中的位域
http://yangwei.blogbus.com/logs/1550489.html位域有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说转载 2012-03-01 17:44:25 · 935 阅读 · 0 评论 -
基类的析构函数需要virtual
基类的析构函数需要virtual,如果不是virtual 那么delete时将不会调用派生类的析构函数(可能会存在内存泄露)如下:class A{public:~A(){cout }};class B:public A{public:~B(){cout }};int _tmain(int argc, _TCHAR* argv[原创 2012-03-08 10:46:20 · 1171 阅读 · 0 评论 -
桌面上嵌入窗口(桌面日历)原理探索
转自:http://www.cppblog.com/weiym/archive/2012/05/03/173608.html 今天在QQ群里有人问怎样实现将自己的窗口嵌入桌面,让它和桌面融为一体,就像很多桌面日历软件那样。我当时想到的就是建立一个Child Window,将他的父窗口设置成桌面Shell窗口就可以了。但是后来想想觉得不对,因为很多桌面日历窗口都有半透明和阴影效果,明显是用Laye转载 2016-02-25 10:51:13 · 1580 阅读 · 0 评论