随笔分类 -  C++

摘要:本文系转载:http://www.cppblog.com/xczhang/archive/2008/01/20/41508.html感谢原作者的付出和公心!(正文如下:)C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书 阅读全文
posted @ 2013-09-25 12:17 bees 阅读(217) 评论(0) 推荐(0)
摘要:关于拷贝构造函数; 1,对于一个类X,如果构造函数的第一个参数是下面四种情况之一: a) X& b)const X& c) volatile X& d)const volatile X& 且没有其他参数或其他参数都有默认值,那么这个函数是拷贝构造函数. 2,可以允许有下面两个拷贝构造函数同时存在:classX{ public: X(constX&); X(X&);//OK}; 3,拷贝构造函数不能由成员函数模板生成; 2,关于strlen()函数: 1 char* c="test"; 2 3 int m=st... 阅读全文
posted @ 2013-09-02 22:40 bees 阅读(253) 评论(0) 推荐(0)
摘要:首先,istrstream类的两个构造函数: istrstream::istrstream(const char* str); istrstream::istrstream(const char* str, int size);接着,看下面一段代码: 1 #include 2 #include 3 4 void main() 5 { 6 char str[100]="I am a student.\n"; 7 char a; 8 istrstream ai(str, 5); 9 10 ai>>a;11 cout>a)的重复次数: n=1, ... 阅读全文
posted @ 2013-08-30 22:01 bees 阅读(730) 评论(0) 推荐(0)
摘要:首次,定义三个字符数组;char a[20];char b[20];char c[20];其次,建立一个文件——"Test 2.txt";其中的字符内容:ffffff,ssssssssss;ggggggg,eeeeeee(ps:就一行)再次,对输入进行文件类定向;ifstream fin("Test 2.txt");最后,进行对比研究;表格 1代码A:fin.get(a, 20, ',');cout<<a<<endl;fin.get(a, 20, ','); cout<<a<< 阅读全文
posted @ 2013-08-30 21:06 bees 阅读(469) 评论(0) 推荐(0)
摘要:下面内容总结了关键字“virtual”使用的几个场合:运用多态性;多态性:C++继承机制中的一种技术,这种技术在程序运行时能一句其类型确认调用哪个函数的能力;多态性又称 “迟后联编”,又称“滞后联编”。使用例子: 1 #include 2 3 class Base 4 { 5 public: 6 virtual void fn() //使用了关键字:virtual; 7 { 8 cout 2 3 class Furniture 4 { 5 public: 6 Furniture(){} 7 void SetWeig... 阅读全文
posted @ 2013-08-29 15:35 bees 阅读(405) 评论(0) 推荐(0)
摘要:转帖内容:C++中const用法总结作者JuKevin1. const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变。例如:const int nValue;//nValue是constint const nValue;// nValue是const但是对于指针类型的TYPE,不同的写法会有不同情况,例如:A. const char *pConte 阅读全文
posted @ 2013-08-20 11:35 bees 阅读(600) 评论(0) 推荐(0)
摘要:问题:建立一个10结点的单项链表,每个结点包括:学号、姓名、性别、年龄。对其进行排序,采用插入排序法,按学号从小到大排列。 1 //思路1,本问题可以仅仅通过类似于对待一般数组一样,通过不断插入赋值来达到目的;author欲通过仅仅对指针进行操作来完成,避免赋值、提高效率; 2 #include 3 4 struct person 5 { 6 int num; 7 char name[30]; 8 char sex[7]; 9 int age;10 person* ptr;11 };12 13 void AddNode(person*, person*... 阅读全文
posted @ 2013-08-08 10:36 bees 阅读(274) 评论(0) 推荐(0)
摘要:1,遍历、删除及插入的思路;设置一个移动指针,通过赋值、循环一步步的向正方向移动;2,编程注意NULL的考虑;new 与 delete 相对应; 阅读全文
posted @ 2013-08-07 12:11 bees 阅读(132) 评论(0) 推荐(0)
摘要:1 //**************************此为一维数组********************************* 2 #include 3 #include 4 5 void main() 6 { 7 int a[10]; 8 int* b=a; 9 10 int n,m;11 n=sizeof(a);12 cout#includevoid main(){ static int a[3][3]; int i,j; int* pr=(int*)a;//这里的赋值,a不行(需要加上强制转换(int*)才行),a... 阅读全文
posted @ 2013-08-03 14:15 bees 阅读(171) 评论(0) 推荐(0)
摘要:qsor()函数使用的一个简单说明。qsort()函数原型:void asort(void*, size_t nelem, size_t width, int (* fcmp)(const void *, const void *));nelem:数组元素个数; width:元素类型长度;int (* fcmp)()是一个函数指针,只要这个参数完成如下功能即可:比较第一个数组中的某两个元素,如果相等则返回0,如果参数1>2,则返回值为正值,否则返回负值。 阅读全文
posted @ 2013-08-02 09:34 bees 阅读(152) 评论(0) 推荐(0)
摘要:一个关于C++各类运算符以及优先级的表格。 阅读全文
posted @ 2013-08-02 09:22 bees 阅读(145) 评论(0) 推荐(0)
摘要:阅读《C++程序设计教程》钱能,P(180)遇到如下表达式:return strcmp(* (char * * )a, *(char * * )b);关于这个表达式,其中strcmp()的原型:int strcmp(const char * str1, const char * str2)。不理解表达式:* (char * *)a解惑:1,(char * *)===>强制类型转换作用。因为关于list[](也就是说a)的定义: char * list[5]={"cat","car","cab","cap",& 阅读全文
posted @ 2013-08-01 16:10 bees 阅读(449) 评论(0) 推荐(0)
摘要:关于后置操作符及前置操作符的散记:a++返回的是常量,而不是变量;前置式自增运算符是先对对象进行修改,然后返回原对象的引用;后置式自增运算符是先申请临时对象保存原对象的值,再在原对象身上进行值修改,返回临时对象;sum+=*(iptr++) > sum+=*iptr++; 理解:先进行iptr++并返回一个地址常量(改变前iptr的值),然后对地址常量进行间接引用指针; 阅读全文
posted @ 2013-07-30 23:41 bees 阅读(173) 评论(0) 推荐(0)