随笔分类 -  c++

摘要:1. 面向对象分析(object oriented analysis,OOA)2. 面向对象设计(object oriented design,OOD)3. 面向对象编程(object oriented programming, OOP)4. 面向对象测试(object oriented test,... 阅读全文
posted @ 2014-07-22 10:32 galoishelley 阅读(311) 评论(0) 推荐(0)
摘要:对一个数据可以使用“引用”(reference),这是C++对C的一个重要扩充,引用是一种新的变量类型,它的作用是为一个变量起一个别名。假如有一个变量a,想给它起一个别名b,可以这样写:int a; //定义a是整型变量 int &b=a; //声明b是a的引用注意: 在上述声明中,&是引用声明符,... 阅读全文
posted @ 2014-07-22 10:07 galoishelley 阅读(329) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2014-07-21 16:48 galoishelley 阅读(131) 评论(0) 推荐(0)
摘要:指针数组的概念一维指针数组的定义形式为类型名*数组名[数组长度]; 例如int *p[4];可以用指针数组中各个元素分别指向若干个字符串,使字符串处理更加方便灵活 阅读全文
posted @ 2014-07-21 16:46 galoishelley 阅读(227) 评论(0) 推荐(0)
摘要:定义指针函数的一般形式为 类型名 *函数名(参数表列);例如int *a(int x,int y); 阅读全文
posted @ 2014-07-21 16:02 galoishelley 阅读(252) 评论(0) 推荐(0)
摘要:指针变量也可以指向一个函数。一个函数在编译时被分配给一个入口地址。这个函数入口地址就称为函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数 1 #include 2 using namespace std; 3 4 int main() 5 { 6 int max(in... 阅读全文
posted @ 2014-07-21 15:26 galoishelley 阅读(747) 评论(0) 推荐(0)
摘要:1 #include 2 using namespace std; 3 4 int main() 5 { 6 void output(int (*p)[4]); 7 int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; 8 outp... 阅读全文
posted @ 2014-07-21 14:42 galoishelley 阅读(335) 评论(0) 推荐(0)
摘要:设有一个二维数组a,它有3行4列。它的定义为int a[3][4]={{1,3,5,7},{9,11,13,15},{17,18,21,23}};a是一个数组名。a数组包含3行,即3个元 素:a[0],a[1],a[2]。而每一元素又是一个一维数组, 它包含4个元素(即4个列元素),例如,a[0]所... 阅读全文
posted @ 2014-07-21 14:21 galoishelley 阅读(533) 评论(0) 推荐(0)
摘要:1 #include 2 using namespace std; 3 4 void select_sort(int *p, int n) 5 { 6 int i, j, k; 7 for(i = 0; i p[j])12 {13 ... 阅读全文
posted @ 2014-07-21 14:08 galoishelley 阅读(1785) 评论(0) 推荐(0)
摘要:如果先使p指向数组a的首元素(即p=a),则:(1) p++(或p+=1)。使p指向下一元素,即a[1]。 如果用*p,得到下一个元素a[1]的值。(2) *p++。由于++和*同优先级,结合方向为自右而 左,因此它等价于*(p++)。作用是: 先得到p指向 的变量的值(即*p),然后再使p的值加1... 阅读全文
posted @ 2014-07-21 13:19 galoishelley 阅读(418) 评论(0) 推荐(0)
摘要:对“&”和“*”运算符再做些说明:(1) 如果已执行了“pointer_1=&a;”语句,请问&*pointer_1的含义是什么?“&”和“*”两个运算符的优先级别相同,但按自右至左方向结合,因此先 进行*pointer_1的运算,它就是变量a,再执行&运 算。因此,&*pointer_1与&a相同... 阅读全文
posted @ 2014-07-18 16:08 galoishelley 阅读(236) 评论(0) 推荐(0)
摘要:只能对字符数组的元素赋值,而不能用赋值语句对整个数组赋值.char c[5];c={′C′,′h′,′i′,′n′,′a′}; //错误,不能对整个数组一次赋值c[0]=′C′; c[1]=′h′;c[2]=′i′;c[3]=′n′;c[4]=′a′; //对数组元素赋值,正确如果已定义了a和b是具... 阅读全文
posted @ 2014-07-18 11:10 galoishelley 阅读(1134) 评论(0) 推荐(0)
摘要:1. 用数组元素作函数实参 1 #include 2 using namespace std; 3 4 int max_value(int x, int max) 5 { 6 return max > x ? max : x; 7 } 8 9 int main()10 {11 ... 阅读全文
posted @ 2014-07-18 10:13 galoishelley 阅读(2898) 评论(0) 推荐(0)
摘要:全局变量全部存放在静态存储区中,在程序开始执行时给全局变量分配存储单元,程序执行完毕就释放这些空间。在程序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放。在动态存储区中存放以下数据: 1函数形式参数。在调用函数时给形参分配存储空间。2函数中的自 动变量(未加static声明的局部变量,... 阅读全文
posted @ 2014-07-17 14:49 galoishelley 阅读(1822) 评论(0) 推荐(0)
摘要:在函数声明中出现的参数名,其作用范围只在 本行的括号内。实际上,编译系统对函数声明中的 变量名是忽略的,即使在调用函数时也没有为它们 分配存储单元。例如int max(int a,int b);┆int max(int x,int y){ cout<<x<<y<<endl; cout<<a<<b<<... 阅读全文
posted @ 2014-07-17 13:22 galoishelley 阅读(255) 评论(0) 推荐(0)
摘要:在调用一个函数的过程中又出现直接或间接地调用 该函数本身,称为函数的递归(recursive)调用.包含递归调用的函数称为递归函数.在实现递归时,在时间和空间上的开销比较大求n! 1 #include 2 using namespace std; 3 4 long func(int n); 5 ... 阅读全文
posted @ 2014-07-17 11:52 galoishelley 阅读(568) 评论(0) 推荐(0)
摘要:实参与形参的结合是从左至右顺序进行的。因此指定默认值的参数必须放在形参表列中的最右端,否则出错。例如:void f1(float a,int b=0,int c,char d=′a′); //不正确void f2(float a,int c,int b=0, char d=′a′); //正确在调用... 阅读全文
posted @ 2014-07-17 11:19 galoishelley 阅读(443) 评论(0) 推荐(0)
摘要:定义函数模板的一般形 式为template 或 template 函数模板:函数参数个数,函数体相同.参数类型不同函数重载: 函数参数个数,类型不同.与函数类型(返回值)无关 1 #include 2 using namespace std; 3 4 template 5 T max(T a,... 阅读全文
posted @ 2014-07-17 11:08 galoishelley 阅读(381) 评论(0) 推荐(0)
摘要:注意: 可以在声明函数和定义函数时同时写 inline,也可以只在其中一处声明inline,效果相同,都能按内置函数处理。使用内置函数可以节省运行时间,但却增加了目标 程序的长度。因此一般只将规模很小(一般为5个语 句以下)而使用频繁的函数(如定时采集数据的函数) 声明为内置函数。内置函数中不能包括... 阅读全文
posted @ 2014-07-17 10:27 galoishelley 阅读(335) 评论(0) 推荐(0)
摘要:有关形参与实参的说明:(1) 在定义函数时指定的形参,在未出现函数调用 时,它们并不占内存中的存储单元,因此称它们是 形式参数或虚拟参数,表示它们并不是实际存在的数据,只有在发生函数调用时,函数max中的形参才被分配内存单元,以便接收从实参传来的数据。 在调用结束后,形参所占的内存单元也被释放(4)... 阅读全文
posted @ 2014-07-17 10:07 galoishelley 阅读(610) 评论(0) 推荐(0)