摘要:
很早的时候课上见过函数指针,后来就再也没有遇到过。以后我会留心标准C++里是否还用这个东西。函数指针说起来是个指针变量,指向一个函数的入口地址。函数的入口地址是什么,暂且不去细究,总之和普通变量地址,结构体地址,类地址一样,有了这个地址,就有了这个地址指向的实体。关于函数指针的几点常识:1.函数指针的声明函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,如果不加括号,代码就成了声明一个返回类型为指针类型的函数(指针函数),后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:int (*f)(int 阅读全文
2012年5月2日
2012年5月1日
摘要:
1 //B.h文件 2 #ifndef B 3 #define B //预处理命令中,没有包含A类的头文件,包含的话就错了 4 class B 5 { 6 public: 7 class A * a; //前向声明A类,同时声明A类的指针,注意,如果声明A类的对象就错了! 8 void fun2(); 9 }; 10 #endif 1 //A.h文件 2 #ifndef A 3 #define A 4 #include"B.h" 5 static int count=0; 6 class A 7 { 8 public: 9 B b; ... 阅读全文
2012年4月26日
摘要:
原类:class A。友元类:class B。在A.h中声明 friend class B,但不要在A.h中包含B.h, 原类中用了友元类但不包含友元类。在A.cpp中包含B.h,原类的实现文件包含友元类头文件。在B.h及B.cpp中分别包含A.h,友元类的头文件和实现文件都包含原类头文件。有点混乱! 阅读全文
摘要:
1 //A.h文件 2 #ifndef A 3 #define A 4 #include"B.h" 5 static int count=0; 6 class A 7 { 8 public: 9 void fun1( );10 }; 11 #endif12 13 //B.h文件14 #ifndef B15 #define B 16 class A; //注意:这里是C++类的前向声明,没有用include“A.h”把对方加进来是考虑到了没有必要,因为最终两个类是要编译到一块17 class B 18 {19 public:20 void fun2()... 阅读全文
摘要:
(源自:http://a117702.blog.163.com/blog/static/327871062009716111134177/)在构造自己的类时,有可能会碰到两个类之间的相互引用问题,例如:定义了类A类B,A中使用了B定义的类型,B中也使用了A定义的类型class A{ int i; B b;}class B{ int i; A* a;}请注意上面的定义内容,一般情况下是不能出现类A,类B相互引用都定义对象,即如下的样子:class A{ int i; B b;}class B{ int i; A a;}在这种情况下,想想可以有a.b.a.b.a.b.a.b.a.b…………,很有点 阅读全文
2012年4月22日
摘要:
(源自:http://hi.baidu.com/kbsy/blog/item/3e7d22df859dd1094854037f.html)1.什么是Unicode编码?UNICODE 是目前用来解决 ASCII 码 256 个字符限制问题的一种比较流行的解决方案。大家知道,ASCII 字符集只有256个字符,用 0-255 之间的数字来表示。包括大小写字母、数字以及少数特殊字符;如标点符号、货币符号等。对于大多数拉丁语言来说,这些字符已经够用。但是,许多亚洲和东方语言所用的字符远远不止256个字符。有些超过千个。人们为了突破 ASCII 码字符数的限制,试图用一种简单的方法来针对超过256个字 阅读全文
摘要:
(源自:http://hi.baidu.com/leoyonn/blog/item/450fd465de279dfaf6365433.html)对输入流操作:seekg()与tellg()对输出流操作:seekp()与tellp()下面以输入流函数为例介绍用法:seekg()是对输入文件定位,它有两个参数:第一个参数是偏移量,第二个参数是基地址。对于第一个参数,可以是正负数值,正的表示向后偏移,负的表示向前偏移。而第二个参数可以是:ios::beg:表示输入流的开始位置ios::cur:表示输入流的当前位置ios::end:表示输入流的结束位置tellg()函数不需要带参数,它返回当前定位指针 阅读全文
2012年4月21日
摘要:
语法:1 1.size_type source_str.find( const basic_string &str, size_type index );2 2.size_type source_str.find( const char *str, size_type index );3 3.size_type source_str.find( const char *str, size_type index, size_type length );4 4.size_type source_str.find( char ch, size_type index );1、2.返回str在字 阅读全文
2012年4月20日
摘要:
(源自:http://www.cnblogs.com/MichaelOwen/articles/2128733.html)1.“#if 0/#if 1 ... #endif”的作用,我们知道,C标准不提供C++里的“//”这样的单行风格注释而只提供“/* */”这样的块注释功能,我们通常使用它写代码中说明性的注释文字(注释作用)以及在调试时关闭某段代码对编译器的可见性(屏蔽作用),当然,这里所谓的“注释作用”和“屏蔽作用”是我们从功能上下的主观定义,对预处理器而言,两者并无任何区别。对于前者,因为“注释”中不会再出现“注释”和“需要屏蔽的代码段”,所以不会有嵌套的需求,所以通常不会有问题;而对 阅读全文
2012年4月18日
摘要:
2012年4月17号,我从lemur(狐猴)http://www.lemurproject.org/官网下载了Indri-5.2-install.exe。我开始安装这个软件,过程中选择了一个“full”,安装在D:\lemur\目录下,安装完成后其中有多个文件夹,还有一个license文件和一个uninst卸载程序,就这些东西。经过查看,bin文件夹中是一些C++程序debug后或release后产生的那种应用程序,doc文件夹里是一些html文件,include文件夹里是一些C++头文件,src文件夹里比较复杂,看上去好像是开源的原程序内容。剩下的几个文件夹的内容就不认识了。接下来先说测试i 阅读全文