上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页

2011年5月24日

摘要: 本文内容来源:《C++必知必会》1 A a;2 a.a = 5;3 //int A::*pMemberA = &a.a; //Error! cannot convert 'int *' to 'int A::*' 4 int A::*pMemberA = &A::a;5 int B::*pMemberB = pMemberA; //implicitly convert 'int A::*' to 'int B::*'6 //int A::*pMemberA2 = pMemberB; //Error! cannot 阅读全文
posted @ 2011-05-24 17:50 Joshua Leung 阅读(139) 评论(0) 推荐(0)
摘要: 永远不要对一个未被初始化的存储区执行用户自定义的赋值操作,且看: 1 #include <stdio.h> 2 #include <string.h> 3 4 class String{ 5 public: 6 String(const char *init){ 7 if(!init) init = ""; 8 s_ = new char[strlen(init) + 1]; 9 strcpy(s_,init);10 }11 ~String(){12 delete [] s_;13 }14 String &operator=(const ch 阅读全文
posted @ 2011-05-24 11:47 Joshua Leung 阅读(345) 评论(0) 推荐(0)
摘要: 本文内容来源:《C++必知必会》有些编译器将虚函数表的指针置于对象的开头,有些则置于对象的末尾,如果涉及多重继承,若干个虚函数表指针就可能会散布于对象之中。即使类没有声明虚函数,其中还是有可能被插入一个虚函数表指针。事实上,不管类的数据成员的声明顺序如何,编译器都被允许(有节制地)重新安排它们的布局。如果一个类类型像一个C 结构体一样非常重要,就可以定义一个POD(plain old data)。内建的类型,比如int, double等都是POD,而且 C struct和类似union的声明也都是POD。1 struct S{ // 一个POD struct2 int a;3 double b 阅读全文
posted @ 2011-05-24 10:43 Joshua Leung 阅读(688) 评论(0) 推荐(0)
摘要: 本文内容来源:《C++必知必会》使用常量成员函数可以改变对象的逻辑状态,虽然对象的物理状态没有发生改变。考虑如下代码,它定义了一个类X:class X{public: X():buffer_(0),isComputed_(false){} //... void setBuffer(){ int *tmp = new int[MAX]; delete [] buffer_; buffer_ = tmp; }//setBuffer void modifyBuffer(int index, int value) const{ buffer_[index] = value; //Valid but n 阅读全文
posted @ 2011-05-24 09:59 Joshua Leung 阅读(4411) 评论(0) 推荐(1)
摘要: 来源:《C++必知必会》1,引用。引用与指针的三大区别:1,不存在空引用;2,所有引用都要初始化;3,一个引用永远指向用来对它初始化的那个对象。编译器可能无法检测到不那么明显的创建空引用的尝试,如下:1 Employee *getAnEmployee();2 //......3 Employee &anEmployee = *getAnEmployee();//getAnEmployee可能返回为空指针4 if( &anEmployee == 0){5 //......6 }7 //建议使用指针来存放getAnEmployee函数的返回值2,我们知道,数组形参会产生所谓的“退化 阅读全文
posted @ 2011-05-24 07:56 Joshua Leung 阅读(293) 评论(0) 推荐(0)

2011年5月23日

摘要: 今天下午去图书馆淘书,又把《C++必知必会》借来了。我记得自己是没怎么看过的,翻了几页才发现很多文字似曾相识。原来当初就看了两三节,真是汗颜。 C++这门课程当初学得倒是挺好,不过时过境迁,许多生僻的语法大抵都忘光了。比如说函数成员,看到"->*"这玩艺儿我心里都发忤。 好还,谷歌一下就真相大白了:http://campus.chsi.com.cn/xy/com/201006/20100617/97808273.html。 说实话,《C++必知必会》这本书翻译得太过稀烂,看到他把积分翻译成整合,哥不禁会心地笑了。为了表示我读过,我把最后一段代码Mark一下。 1 cl 阅读全文
posted @ 2011-05-23 19:09 Joshua Leung 阅读(192) 评论(0) 推荐(0)

2011年5月18日

摘要: 转载来源:http://wiki.mbalib.com/wiki/%E4%B8%8D%E7%A1%AE%E5%AE%9A%E5%9E%8B%E5%86%B3%E7%AD%96%E6%96%B9%E6%B3%95不确定型决策方法又称非确定型决策,非标准决策或非结构化决策,是指决策人无法确定未来各种自然状态发生的概率的决策。不确定型决策的主要方法有:等可能性法、保守法、冒险法、乐观系数法和最小最大后悔... 阅读全文
posted @ 2011-05-18 09:32 Joshua Leung 阅读(503) 评论(0) 推荐(0)

2011年5月15日

摘要: 1 // Standard Template Library example using a class. 2 3 #include "stdafx.h" 4 #include <iostream> 5 #include <list> 6 using namespace std; 7 8 // The List STL template requires overloading operators =, == and <. 9 10 class AAA 11 { 12 friend ostream &operator<<(o 阅读全文
posted @ 2011-05-15 17:17 Joshua Leung 阅读(190) 评论(0) 推荐(0)
摘要: 1 vector<vector<vector<int> > > vI3Matrix(3,vector<vector<int> >(2,vector<int>(2,100)));2 for(int i = 0 ; i < 3; i++)3 for(int j = 0; j < 2; j++)4 for(int k = 0; k < 2; k++) 5 printf("%d \r\n",vI3Matrix[i][j][k]);以上代码定义了一个3x2x2的三维整形数组,并全部初始化为100 阅读全文
posted @ 2011-05-15 16:50 Joshua Leung 阅读(256) 评论(0) 推荐(0)

2011年5月12日

摘要: 摘自《编程珠玑》一书第1章习题: 1: #define BITSPERWORD 32 2: #define SHIFT 5 3: #define MASK 0x1F 4: #define N 10000000 5: int a[1 + N/BITSPERWORD]; 6: 7: void set(int i){ 8: a[i >> SHIFT] |= (1 << (i & MASK)); 9: ... 阅读全文
posted @ 2011-05-12 11:39 Joshua Leung 阅读(337) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页

导航