C++
文章平均质量分 51
zhuimengzh
c plus plus学习者!
希望与更多的同道中人交流、认识。
展开
-
Linux经典书籍推荐
入门篇 《LINUX权威指南》书不错,写的很全面也比较广,涉及的不深,做为入门书籍不错,可以比较全面的了解linux 。另外比较热门的也可以看看《鸟哥的私房菜》等书,偏管理类的书。如果想做server方向的可以找来看看。驱动 篇 《LINUX设备驱动程序 》就是网上说的“LDD”,经典之作,必备书籍。国产经典《Linux驱动详细解》也是一本非常不错的书,很实用,书中源代码 分析比较转载 2013-07-21 20:22:35 · 1012 阅读 · 1 评论 -
内存操作错误改错
#include using namespace std;//测试1// 传入GetMemory1(char *p) 的形参为字符串指针,在函数内部修改形参并不能//真正的改变传入参数的值。执行完毕后 str1仍为NULLvoid GetMemory1原创 2011-08-14 15:16:09 · 770 阅读 · 0 评论 -
自增自减问题
分析题1:写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中a的值: #include using namespace std;void main(){ int a=4; //a+=(a++);//A //cout<<a<<endl原创 2011-08-24 20:27:11 · 925 阅读 · 0 评论 -
memset函数详细说明
1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。2。例子#includevoid main(){char *s="Golden Global View";转载 2011-09-20 21:34:54 · 667 阅读 · 0 评论 -
设计一个算法判断一个字符串是否是回文
设计一个算法判断一个字符串是否是回文,并写出代码。"A man a plan a canal panama"是回文。//是,返回true,否,返回false#include using namespace std;bool Huiwen(char*s){原创 2011-08-21 20:45:11 · 17146 阅读 · 1 评论 -
单链表逆转(含头结点)
// 字串查找.cpp : 定义控制台应用程序的入口点。//单链表#include "stdafx.h"#include #include using namespace std;typedef struct node { int data;//节原创 2011-08-15 13:47:19 · 1780 阅读 · 0 评论 -
带默认参数的虚函数
// 字串查找.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;class base{public: base(){ cout<<"原创 2011-09-18 19:16:22 · 6296 阅读 · 0 评论 -
C++(不用virtual)模拟虚函数来表现出多态性
///////////////////////////////////////////////////////////////////////#include using namespace std;//自写C模拟C++多态//类A中虚函数void f1(原创 2011-08-19 21:18:43 · 1351 阅读 · 0 评论 -
类的访问权限和派生继承时的访问权限
在C++的类的数据成员的访问权限分为三种:public、protect和private。private表示自己本类私有,不允许其它类的直接访问;protected表示自己及子孙可以访问,其它族类不允许直接访问,我们可以把它比作是本家族的共同财富;public表示向全社原创 2011-09-18 10:25:24 · 1309 阅读 · 0 评论 -
复数类模板(Complex Class)
#ifndef COMPLEX_H#define COMPLEX_H#include iostream>#include iomanip>class Complex{public: Complex(double _real,double _ima转载 2011-09-18 18:53:25 · 4693 阅读 · 0 评论 -
各种排序算法时间复杂度比较
各种排序算法时间复杂度比较:以上图片来维基百科,http://en.wikipedia.org/wiki/Algorithms原创 2011-08-21 13:38:52 · 1175 阅读 · 0 评论 -
构造函数、拷贝构造函数、赋值函数、析构函数的调用顺序
例1 #include "stdafx.h"#include #include using namespace std;class B{public: B(){ cout<<"default constructor\n"; } ~B(){原创 2011-09-15 20:51:36 · 1341 阅读 · 1 评论 -
进程与线程的区别
线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;(2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源(3)线程转载 2011-08-29 19:51:26 · 932 阅读 · 0 评论 -
注意 c++ vector中的erase()
#include #include vector>using namespace std; int main(){ vectorint> arr; arr.push_back(6); arr.push_back转载 2011-10-03 09:58:43 · 25395 阅读 · 3 评论 -
智能指针
// 智能指针.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include using namespace std;//智能指针templateclass Smar原创 2011-10-04 00:30:01 · 776 阅读 · 0 评论 -
类型转换运算符重载
类型转换运算符,只要你把XXX对象隐式或者显式转换为T对象时,它都会被自动调用。 #includeusing namespace std;//类型转换运算符重载,只要你把XXX对象隐式或者显式转换为T对象时,它自动被调用templateclass Transfer{public: Transfer(int arg):i(arg){} operator原创 2013-02-21 22:45:15 · 3135 阅读 · 1 评论 -
移位操作
移位操作 移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:>(带符号右移)和>>>(无符号右移)。 在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移转载 2013-01-08 17:11:45 · 2205 阅读 · 0 评论 -
成员函数的重载、覆盖与隐藏
8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual关键字。8.2.2 令人迷惑的隐藏规则 这里“隐藏原创 2012-01-15 12:46:13 · 617 阅读 · 0 评论 -
常量字符串为什么位于静态存储区?
char *c="chenxi";书上说: "chenxi"这个字符串被当作常量而且被放置在此程序的内存静态区。那一般的int i=1;1也是常量,为什么1就不被放置在此程序的内存静态区了呢?请高手指点!所有的字符窜常量都被放在静态内存区因为字符串常量很少需要修改,放在静态内存区会提高效率例:char str1[] = "abc";char str2[] = "转载 2012-01-14 16:08:38 · 828 阅读 · 0 评论 -
C++变量命名规则
C++变量命名规则a Array 数组b BOOL (int) 布尔(整数)by Unsigned Char (Byte) 无符号字符(字节)c Char 字符(字节)cb Count of bytes 字节数cr Color reference value 颜色(参考)值cx Count of x (Short) x的集合(短整数)转载 2012-01-11 13:06:45 · 649 阅读 · 0 评论 -
vs2010 标记菜单问题
在vs2010下,想实现标记菜单的功能问题:在 CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 函数的return语句之前,加上这样一行代码: CMenu *pMenu=GetMenu();ASSERT_VALID(pMenu);CMenu *pSubMenu=pMenu->GetSubMenu(0);A原创 2011-11-02 22:15:13 · 2542 阅读 · 1 评论 -
C语言中如何使用宏 包括单双井号 可变参数
C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP) /转载 2011-11-20 10:52:13 · 695 阅读 · 0 评论 -
深入体会__cdecl与__stdcall
一同分享编程是种快乐 公告昵称:sober园龄:3年粉丝:4关注:2+加关注日历2009年9月>日一二三四五六转载 2011-11-19 22:31:31 · 881 阅读 · 0 评论 -
现代C++风格的新元素
http://www.51testing.com/html/99/n-248899.html转载 2011-11-20 17:59:13 · 583 阅读 · 0 评论 -
CWnd::MessageBoxW”: 不能将参数 1 从“const char [16]”转换为“LPCTSTR
CWnd::MessageBoxW”: 不能将参数 1 从“const char [16]”转换为“LPCTSTR 2011-06-30 10:27:50| 分类:VC学习 | 标签:|字号大中小 订阅在外面用vs2005编写mfc程序的时候经常要MessageBox("提示信息")函数,在vc6.0是没有问题的,但是在vs2005却会有下面的提示:e转载 2011-10-21 12:50:02 · 7571 阅读 · 0 评论 -
函数对象
函数对戏就是重载了()运算符的类的对象,它可以像一个函数一样使用。 // 函数对象.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #includeusing namespace std;/*原创 2011-10-04 01:36:06 · 749 阅读 · 0 评论 -
不是用它printf,将十进制数以二进制和十六进制的形式输出
//不是用它printf,将十进制数以二进制和十六进制的形式输出#include "stdafx.h"#include using namespace std;//将十进制转换为2进制char *get2string(long n){char原创 2011-09-14 20:32:16 · 1834 阅读 · 0 评论 -
函数指针
在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址来调用数组数据,也可以使用指针变量指向函数代码的首地址来调用函数,指向函数代码首地址的指针变量就称为函数指针。1.函数指针定义函数类型 (*指转载 2011-08-19 10:15:12 · 375 阅读 · 0 评论 -
堆和栈的区别【很详细的解释】
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap)转载 2011-08-16 11:32:08 · 1002 阅读 · 0 评论 -
内存对齐详解
/*Intel、微软等公司曾经出过一道类似的面试题:问程序的输入结果是什么?*/#include using namespace std;#pragma pack(8)struct example1{ short a; long b原创 2011-08-12 14:48:26 · 958 阅读 · 0 评论 -
字符串处理函数gets()、puts()、strcmp()、strlen()、strcpy()、strcat()-C语言
字符串处理函数gets()、puts()、strcmp()、strlen()、strcpy()、strcat()-C语言 字符串标准函数的原型在头文件string.h中。1.输入字符串──gets()函数(1)调用方式:gets(字符数组)(2)函数功能:从转载 2011-08-13 10:21:05 · 6216 阅读 · 0 评论 -
浅析C++中的this指针
有下面的一个简单的类:class CNullPointCall{public: static void Test1(); void Test2(); void Test3(int iTest); void Test4();转载 2011-09-10 12:48:52 · 740 阅读 · 0 评论 -
我从创立3家科技公司的经历中学到了什么
1999年以来,我已亲手创立和经营了3家科技公司,我现在正在经营的公司是Fabulis.com。一路走来,我学到了很多,据我个人的创业经历,我认为以下36个方面对创业者来说非常重要。 1.要想创业,首先要对创业有火一样的激情。 2.良好的用户体验至关重要,很多产品转载 2011-08-12 13:52:58 · 1038 阅读 · 0 评论 -
sscanf函数用法
本文转自:http://kmplayer.iteye.com/blog/556293 此文所有的实验都是基于下面的程序: char str[10]; for (int i = 0; i 执行完后str的值为 str = "!!!!!!!!!!"转载 2011-08-11 14:54:35 · 12754 阅读 · 0 评论 -
虚继承与虚基类的本质
虚继承与虚基类的本质 虚继承和虚基类的定义是非常的简单的,同时也是非常容易判断一个继承是否是虚继承的,虽然这两个概念的定义是非常的简单明确的,但是在C++语言中虚继承作为一个比较生僻的但是又是绝对必要的组成部份而存在着,并且其行为和模型均表现出转载 2011-09-09 16:47:45 · 762 阅读 · 0 评论 -
KMP子串匹配算法
KMP 模式匹配 KMP模式匹配是D.E.Knuth V.R.Pratt和J.H.Morris同时发现的。因此人们称它为克努特-莫里斯-莫拉特操作(简称KMP算法)。KMP的优势在于当每一趟匹配结果中出现了不等情况时,主串并不需要回溯位置i,而只要 回溯模式原创 2011-09-09 12:56:49 · 908 阅读 · 0 评论 -
虚拟继承的类对象的空间大小
// 含有虚拟继承对象的空间大小.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;class A{public:protected:private:原创 2011-09-09 14:59:24 · 2765 阅读 · 4 评论 -
C/C++数组名与指针区别深入探索
转自:http://tech.163.com/05/0823/11/1RR94CAS00091589.html C/C++数组名与指针区别深入探索http://tech.163.com/school · 2005-08-23 11:05:18 · 来源: 天极网转载 2011-08-10 13:47:18 · 417 阅读 · 0 评论 -
C语言中的整数自动转换原则
1、隐式转换 C在以下四种情况下会进行隐式转换: 1、算术运算式中,低类型能够转换为高类型。 2、赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给他。 3、函数调用中参数传递时,系统隐式地将实参转换为形参原创 2011-08-29 10:54:42 · 28192 阅读 · 4 评论 -
extern用法详解(转)
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a转载 2011-08-09 15:25:49 · 454 阅读 · 0 评论