c++笔记
i丹明扬
不甘于平凡,竭尽全力,追求自己的梦想
展开
-
浅析C++中的this指针
有下面的一个简单的类:class CNullPointCall{public: static void Test1(); void Test2(); void Test3(int iTest); void Test4();转载 2011-10-14 14:40:57 · 1016 阅读 · 0 评论 -
浅谈setjmp与longjmp
在C语言中,用于跳转的goto语句,只能够用在同一个函数内部的跳转。而setjmp 与 longjmp的结合使用,却可以实现在不同程序之间的跳转。让我们先来看一下函数原型吧:#include int setjmp(jmp_buf env) Returns: 0 if called directly, nonzero if returning from a call to longjmp.转载 2012-06-17 09:34:47 · 1881 阅读 · 0 评论 -
const限定符 全
今天看到指针与const限定符这一节,看到这种我肯定会出错的情况,typedef string *pstring; const pstring cstr;请问cstr是什么类型的???很多人像我一样的菜鸟都会认为是const string *;。。。。。。。。。。所以总结下const的用法1.定义const对象熟悉的形式 const int bufSize = 512; 变量原创 2011-09-28 23:31:30 · 1649 阅读 · 0 评论 -
详谈重载(overload)覆盖(override)与隐藏 ( hide )
这三个概念都是与OO中的多态有关系的。如果单是区别重载与覆盖这两个概念是比较容易的,但是隐藏这一概念却使问题变得有点复杂了,下面说说它们的区别吧。重载是指不同的函数使用相同的函数名,但是函数的参数个数或类型不同。调用的时候根据函数的参数来区别不同的函数。覆盖(也叫重写)是指在派生类中重新对基类中的虚函数(注意是虚函数)重新实现。即函数名和参数都一样,只是函数的实现体不一样。隐藏是指派生转载 2012-06-22 16:39:58 · 921 阅读 · 0 评论 -
C语言编译过程
1.预处理 。。。 预处理阶段将根据已放置在文件中的预处理指令来修改源文件的内容 主要以下几个方面:宏定义指令,条件编译指令,头文件包含,特殊符号。。。特殊符号,预编译程序可以识别一些特殊的符号 例如在源程序中出现的LINE标识将被解释为当前行号(十进制数),FILE则被解释为当前被编译的C源程序的名称(带绝对路径)。预编译程序对于在源程序中出现的这些串将用合适的值进行替原创 2012-07-13 19:18:42 · 1093 阅读 · 0 评论 -
C++中Static的完全解析
转自: http://blog.csdn.net/jsjwql/article/details/1788286#comments C++中Static的完全解析C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量转载 2012-07-15 14:46:17 · 911 阅读 · 0 评论 -
VC++常规错误之21:Debug Assertion Failed!在winocc.cpp第307或329行错误
转自:http://hi.baidu.com/vc_net/item/a6357e0e6d5437f3a1103447断言错误,如图所示找到代码(这个是VS2010版本的,各个版本会有所不同,可能不是在第329行,但是都是这个意思),如下BOOL CWnd::ShowWindow(int nCmdShow){ ASSERT(::IsWin转载 2012-08-26 15:39:31 · 9174 阅读 · 1 评论 -
C语言之sizeof详解 eg: int i = 10; printf("sizeof(i++) is: %d\n",sizeof(++i));
#include #include int main(){ int i; i = 10; printf("i : %d\n",i); printf("sizeof(i++) is: %d\n",sizeof(++i)); printf("i : %d\n",i); return 0;}结果:i : 10sizeof原创 2012-09-23 22:29:26 · 15045 阅读 · 2 评论 -
从文件中查找出现次数最多的10个单词
本来想用字典树的,但字典树是空间换时间的,只有26个字母还好,但文件中还有各种标点符号,觉得空间耗费太大了。。。。就用了还算一般的方法。。十道海量数据处理:http://blog.csdn.net/v_july_v/article/details/6279498字典树参考:http://www.cnblogs.com/DiaoCow/archive/2010/04/19/17153原创 2012-11-16 17:27:27 · 5956 阅读 · 0 评论 -
56 Expression: (unsigned)(c + 1) <= 256
遇到问题:56 Expression: (unsigned)(c + 1) 在isctype.c中产生断言extern "C" int __cdecl _chvalidator_l(_locale_t plocinfo,int c,int mask){_LocaleUpdate _loc_update(plocinfo); _原创 2012-11-16 16:45:09 · 7407 阅读 · 1 评论 -
C++基础 静态成员,析构函数显示调用 课本5.1
//============================================================================// Name : 5.1.cpp// Author : zhaoming// Version :// Copyright : copyright to zhaoming// Description原创 2012-12-28 17:02:21 · 1509 阅读 · 0 评论 -
C++ 基础 不能在一个类中定义另一个类的成员函数 课本5.11
//============================================================================// Name : 11.cpp// Author : zhaoming// Version :// Copyright : copyright to zhaoming// Descrip原创 2012-12-29 12:53:37 · 1648 阅读 · 0 评论 -
linux fork "\n"刷新缓冲区问题
参考:http://www.cnblogs.com/guoqiaojin/archive/2012/08/24/2653609.html asic (阿塞克) 于Mon Jul 16 12:48:46 2012)提到:int main() {printf("hello ");fork();printf("world\n");}执行结果是打印了两行 hello world转载 2013-01-03 19:18:51 · 2344 阅读 · 1 评论 -
我要赚很多很多钱~
世界上绝大多数问题的根源都可以追究到"钱“上面~原创 2013-02-01 07:11:56 · 1795 阅读 · 0 评论 -
通过引用捕获异常(转)
当你写一个catch子句时,必须确定让异常通过何种方式传递到catch子句里。你可以有三个选择:与你给函数传递参数一样,通过指针(by pointer),通过传值(by value)或通过引用(by reference)。 我们首先讨论通过指针方式捕获异常(catch by pointer)。从throw处传递一个异常到catch子句是一个缓慢的过程,在理论上这种方法的实现对于这个过程来转载 2012-06-17 10:48:12 · 1126 阅读 · 0 评论 -
龙贝格积分
龙贝格积分对于编程实现来说,一开始不太好懂. 对于不易直接用积分公式计算的原函数,通常用复合梯形求积公式或复合抛物线求积公式等方法,但这些方法精度不高,收敛的速度缓慢。为了提高收敛速度,减少计算量,人们寻求其他方法. Romberg方法也称为逐次分半加速法。它是在梯形公式、辛卜生公式和柯特斯公式之间的关系的基础上,构造出一种加速计算积分的方法。 作为一种外推算法, 它在不增转载 2012-06-12 09:40:31 · 4544 阅读 · 1 评论 -
C++注意点
一 编程设计 1.将程序划分为多个子系统,包括子系统间的接口和依赖关系、子系统间的数据流、在各子系统间的来回输入输出、以及总的线程模型。 2.各个子系统的具体细节,包括进一步细分的类、类层次体系、数据结构、算法、特定的线程模型和错误处理。二 设计流程 1.需求:功能需求和性能需求。 2.设计步骤 (1)把程序划分为通用功能转载 2011-11-20 00:44:48 · 1831 阅读 · 0 评论 -
C++ 的 ::
一个简单的问题:#include using namespace std;int i = 1;int main(){ int i = 2; cout cout i = 3; cout cout ::i = 4; cout cout return原创 2011-11-20 00:43:38 · 783 阅读 · 0 评论 -
C++中竟然可以用 ... 这样省略形参
/*省略参数:用省略号…表示, 省略号出现的地方可以有任意个任意类型的参数。例如常用的printf函数:int printf (const char *format, …) ; */#include #include using namespace std; long sum(int n, ...) { long s = 0; int *p = &n原创 2011-12-30 00:40:36 · 1552 阅读 · 0 评论 -
bitset的定义和初始化
bitset的定义和初始化表3-6列出了bitset的构造函数。类似于vector,bitset类是一种类模板;而与vector不一样的是bitset类型对象的区别仅在其长度而不在其类型。在定义bitset时,要明确bitset含有多少位,须在尖括号内给出它的长度值:bitset bitvec; //32位,全为0。给出的长度值必须是常量表达式(2.7节)。正如这里给出的,转载 2012-01-06 10:42:36 · 5151 阅读 · 1 评论 -
内存对齐问题探究
下面这几个简单例子,涉及内存对齐#include#include class test{};int main(){ int i = sizeof(test); printf("%d",i); getchar();}打印结果::::::竟然为1#include#include class test{原创 2012-03-25 22:57:07 · 1047 阅读 · 0 评论 -
C++虚表
C++ 中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技 术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚 函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在转载 2012-03-06 00:42:57 · 933 阅读 · 2 评论 -
invalid+use+of+non-static+member+function+问题
#include using namespace std;class A{public : A (int i) { a = i; } int fun(int b) { return a*c+b; } int c;private : int a;原创 2011-10-14 08:47:09 · 30474 阅读 · 5 评论 -
不用临时变量交换两个数的值
不用临时变量交换两个数的值当要交换两个数的值时,通常的做法是定义一个临时变量,然后再进行交换。那么能不能不用临时变量而交换两个数的值呢?可以的!C语言提供的异或运算就可以实现这样的操作。 异或运算符^也称XOR运算符,它的规则是若参加运算的两个二进位同号,则结果为0(假);异号为1(真)。即0 ^ 0 = 0, 0 ^转载 2012-03-18 23:07:51 · 917 阅读 · 0 评论 -
关于常量折叠(转)
首先来看一个例子:int main(int argc, char* argv[]){const int i=0;int *j = (int *) &i;*j=1;coutcoutcoutreturn 0;}结果是0012ff7c0012ff7c01因为i和j都指向相同的内存地址,所以输出转载 2012-04-11 15:57:15 · 816 阅读 · 0 评论 -
注意getchar()的返回值啊
getchar()在stdio.h中原型为int getchar(void);返回值竟然为int型啊,这真不是我们的错,误导人啊啊原创 2012-04-15 22:50:23 · 3640 阅读 · 0 评论 -
main函数递归
字符串反转程序:#include main(int i){(i = getchar() ) != 10 && main(i) ;putchar(i);return 0;}原创 2011-09-28 23:21:29 · 915 阅读 · 0 评论 -
常量字符串为什么位于静态存储区?
常量字符串为什么位于静态存储区?char *c="zhaobei";书上说: "zhaobei"这个字符串被当作常量而且被放置在此程序的内存静态区。那一般的int i=1;1也是常量,为什么1就不被放置在此程序的内存静态区了呢?请高手指点!所有的字符窜常量都被放在静态内存区因为字符串常量很少需要修改,放在静态内存区会提高效率例:cha转载 2012-04-20 19:18:14 · 2616 阅读 · 0 评论 -
如何组织编写模板程序
如何组织编写模板程序 前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接口简单,操作复杂。我在5年前开始使用模板,那时我看到了MFC的容器类。直到去年我还没有必要自己编写模板类。可是在我需要自己编写模板类时,我首转载 2012-04-23 00:09:52 · 1118 阅读 · 0 评论 -
su 认证失败
1 me@ubuntu:~$ su 2 密码:<--- 输入安装时root用户的密码3 su:认证失败 很简单,重新设置下密码就好了(虽然我输入的还是旧的密码)1 me@ubuntu:~$ sudo passwd 2 密码:<--- 输入安装时那个用户的密码3 输入新的 UNIX 密码:4 重新输入新的 UNIX 密码:5 pas原创 2013-03-02 08:49:12 · 1592 阅读 · 0 评论