随笔分类 -  C++ Study

摘要:题目:已知strcpy函数的原型是:char*strcpy(char*strDest,constchar*strSrc);1.不调用库函数,实现strcpy函数。2.解释为什么要返回char*。解说:1.strcpy的实现代码char*strcpy(char*strDest,constchar*strSrc){if((strDest==NULL)||(strSrc==NULL))//[1]throw"Invalidargument(s)";//[2]char*strDestCopy=strDest;//[3]while((*strDest++=*strSrc++)!= 阅读全文
posted @ 2013-04-27 13:36 不想当元帅的好兵。 阅读(440) 评论(0) 推荐(0)
摘要:将构造函数,析构函数声明为私有和保护的,那么对象如何创建?已经不能从外部调用构造函数了,但是对象必须被构造,应该如何解决,麻烦大家帮忙说明,关于构造,析构函数声明为私有和保护时的用法???提出这个问题,说明你已经对c++有所思考了。从语法上来讲,一个函数被声明为protected或者private,那么这个函数就不能从“外部”直接被调用了。对于protected的函数,子类的“内部”的其他函数可以调用之。而对于private的函数,只能被本类“内部”的其他函数说调用。语法上就是这么规定的,你肯定也知道的咯。那么为什么有时候将构造函数或者析构函数声明为protected的或者private的?通 阅读全文
posted @ 2013-04-26 21:35 不想当元帅的好兵。 阅读(199) 评论(0) 推荐(0)
摘要:C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:01.//Example 102.#include <iostream.h>03.voidfn();04.staticintn;//定义静态全局变量05.voidmain()06.{07.n=20;08.cout<<n<<endl 阅读全文
posted @ 2013-04-26 18:58 不想当元帅的好兵。 阅读(195) 评论(0) 推荐(0)
摘要:运算符sizeof可以计算出给定类型的大小,对于32位系统来说,sizeof(char) = 1; sizeof(int) = 4。基本数据类型的大小很好计算,我们来看一下如何计算构造数据类型的大小。C语言中的构造数据类型有三种:数组、结构体和共用体。数组是相同类型的元素的集合,只要会计算单个元素的大小,整个数组所占空间等于基础元素大小乘上元素的个数。结构体中的成员可以是不同的数据类型,成员按照定义时的顺序依次存储在连续的内存空间。和数组不一样的是,结构体的大小不是所有成员大小简单的相加,需要考虑到系统在存储结构体变量时的地址对齐问题。看下面这样的一个结构体:struct stu1{int i 阅读全文
posted @ 2013-04-25 19:12 不想当元帅的好兵。 阅读(251) 评论(0) 推荐(0)
摘要:1.p213函数用指针来处理数组当且仅当用于函数头或函数原型中, int*arr 和int arr[] 的含义是相同的int sum = sum_arr(cookies,arsize);cookies是其第一个元素,因此是函数传递的是地址。int sum_arr(int *arr,int n) //or int arr[]当指针指向一个独立的值时,使用指针表示法。2.p215cookies 和 arr 指向同一个地址,sizeof cookies 32sizeof arr 4这是由于sizeof cookies 是整个数组的长度, 而sizeof arr 只是指针变量的长度。这也是必... 阅读全文
posted @ 2012-12-06 12:35 不想当元帅的好兵。 阅读(212) 评论(0) 推荐(0)
摘要:1.写入到文本文件中 包含iostream头文件,指明命名空间std,用运算符<<来显示各种类型的数据。 包含fstream头文件, 声明ofstream 变量(对象),命名空间,ofstream对象与文件关联起来。为此,方法之一是使用open()方法。使用完了以后,硬使用close()方法讲其关闭。 结合使用ofstream对象和运算符<<输出各种类型的数据。声明ofstream对象:ofstream outFile;ofstream fout;对象跟特定文件关联起来:outFile.open("fiish.txt"); char filename 阅读全文
posted @ 2012-12-01 13:24 不想当元帅的好兵。 阅读(159) 评论(0) 推荐(0)
摘要:1.p177运算符 另一种表示方式&& and|| or! notC语言中 要包含头文件 ios646.h C++不要求使用头文件。2.p177字符函数库 cctype3.p183将枚举量当做标签enum{ red,orange,yellow,green,blue,violet,indigo };int code;cin>>code;while(code >=red && code <=indigo)//自动提升为算术类型 { switch (code) { case red : .... }} 4.p185b... 阅读全文
posted @ 2012-11-30 16:53 不想当元帅的好兵。 阅读(193) 评论(0) 推荐(0)
摘要:1. p142字符串数组中word 是数组名word == “mate”数组名是数组的地址, 同样,用引号括起来的字符串常量也是其地址,因此上面的关系式判断的是否存储在相同的地址上。2.p147for跟while 差别 for循环中省略了测试条件,将认为条件为truefor循环中,可使用初始化语句声明一个局部变量,但在while循环中不能这么做。continue语句 稍有不同。在无法预先知道循环将执行的次数时,程序员常使用while循环。3.p149类型别名一 使用于处理器 #define BYTE char二 使用关键字 typedef 来创建别名 typedef char byte在.. 阅读全文
posted @ 2012-11-30 12:57 不想当元帅的好兵。 阅读(276) 评论(0) 推荐(0)
摘要:一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。二、#define的用法#define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了,但也因此难以发现潜在的错误及其它代 阅读全文
posted @ 2012-11-30 12:57 不想当元帅的好兵。 阅读(149) 评论(0) 推荐(0)
摘要:1.p120模板类vector (效率稍低)包含头文件 #include <vector>包含在命名空间 std中模板使用不同的语法来指出它的存储的数据类型vector类使用不同的语法来指定元素vector<typeName> vt(n_elem)其中 n_elem 可以是整形常量,也可以是整形变量模板类array包含头文件 #include<array>array<typeName,n_elem>arr;n_elem 不能为变量数组 vector array对象 比较都可以用标准数组表示法来访问各个元素array对象和数组放在内存区域(栈)中, 阅读全文
posted @ 2012-11-27 23:36 不想当元帅的好兵。 阅读(107) 评论(0) 推荐(0)
摘要:1. p104用new来分配内存对于指针,new分配的内存块通常与常规变量声明分配的内存块不同。变量都存储在栈的内存区域,而new从被称为堆或自由存储区的内存区域分配内存。用delete 释放内存(与new配对使用)2. p105使用动态数组int *psome = new int[10];释放delete [] psome;double *p3 = new double[3];p3 = p3 + 1;不能修改数组名的值 , 但是指针是变量,因此可以修改它的值,加1以后,增加的量等于指向类型的字节数,它指向下一个元素的地址。3.p109 指针小结声明double * pn;赋值 :应将内存地址 阅读全文
posted @ 2012-11-27 16:36 不想当元帅的好兵。 阅读(201) 评论(0) 推荐(0)
摘要:1. p88结构简介:先定义结构描述struct inflatable{ char name[20]; float volume; double price; }再按描述创建结构变量struct inflatable gooes;// in cinflatable vincent;//int c++ 可省略 structinflatable guest = { "Glorious Gloria", 1.88, 29.99 };// init indicated valuesC++不提倡使用外部变量,但提倡使用外部结构申明。根据C++11新特性,与... 阅读全文
posted @ 2012-11-23 16:56 不想当元帅的好兵。 阅读(213) 评论(0) 推荐(0)
摘要:1. p16 C++ 旧风格 头文件 以.h结尾 新式风格 没有扩展名 需要使用 namespace std访问 名称空间std 四种方法: using namespace std 放在函数定义之前 放在特定函数中 使用 using std::cout 使用制定元素如 cout 不使用using指令 使用前缀std::2. p19控制符 endl 重启一行换行符 \n用引号括起的字符串时,通常用\n,其他用endl3.p39位与字节 计算机内存基本单位 位(bit)字节 8bit... 阅读全文
posted @ 2012-11-22 16:55 不想当元帅的好兵。 阅读(205) 评论(0) 推荐(0)
摘要:从INT 到STRING的几种方法1. int sprintf( char *buffer, const char *format [, argument] ... ); <stdio.h>例如: int ss; char temp[64]; string str; ss = 1000; sprintf(temp, "%d", ss); string s(temp); //调用string的方法 cout<<s.c_str()<<endl;//1000 cout<<s.size()<<endl; //长度为42.c 阅读全文
posted @ 2012-10-15 17:51 不想当元帅的好兵。 阅读(147) 评论(0) 推荐(0)
摘要:很基础的东西, 我表示也还是需要记录下的。1.pow指数函数(x的y次方) #include<math.h>2.sin sin函数3.在c++中这很容易: if(typeid(exp)==typeid(int)) { //you statement;... }//typeid 是c++关键字用来判断某一表达式与//另一表达式是否有相同的类型(记住了:))4.substr(0,8)5.牛顿法迭代公式:x(n+1)=x(n)-f(x(n))/f'(x(n))6.abs() 绝对值7.#define N 20 预定义8.//判断num是否完全平方数int isSqure(int 阅读全文
posted @ 2012-10-14 23:29 不想当元帅的好兵。 阅读(154) 评论(0) 推荐(0)