NoFear

导航

2012年4月12日

摘要: View Code 第一:private, public, protected 访问标号的访问范围。1. private: 只能由1.该类中的函数、2.其友元函数访问。 该类的对象也不能访问。2. protected:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问。 该类的对象也不能访问。3. public: 可以被1.该类中的函数、2.子类的函数、3.其友元函数访问。 该类的对象可以访问。注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。第二:类的继... 阅读全文

posted @ 2012-04-12 23:25 Fear_Hao 阅读(241) 评论(0) 推荐(0) 编辑

2012年3月22日

摘要: View Code 让编译器进行隐式类型转换所造成的弊端要大于它所带来的好处,所以除非你确实需要,不要定义类型转换函数。隐式类型转换的缺点:它们的存在将导致错误的发生。例如:class Rational {public: ... operator double() const; // 转换Rational类成double类型};在下面这种情况下,这个函数会被自动调用:Rational r(1, 2); // r 的值是1/2 double d = 0.5 * r; ... 阅读全文

posted @ 2012-03-22 11:04 Fear_Hao 阅读(444) 评论(0) 推荐(0) 编辑

摘要: View Code 由于 某些时刻你需要获取一个 RAII 对象中的原始资源,所以一些 RAII 类的设计者使用了一个小手段来使系统正常运行,那就是:提供一个隐式转换函数。举例说,以下是一个 C 语言 API 中提供的处理字体的一个 RAII 类:FontHandle getFont(); // 来自一个 C 语言 API 省略参数表以简化代码void releaseFont(FontHandle fh); // 来自同一个 C 语言 APIclass Font // RAII 类{ ... 阅读全文

posted @ 2012-03-22 10:55 Fear_Hao 阅读(213) 评论(0) 推荐(0) 编辑

2012年3月17日

摘要: View Code 1.返回引用能成为左值eg: fun()=13;2.直接代表传的东西,而不是拷贝3.效率高如果不想fun()=13;加上const修饰引用的话 fun()=13 就会报错 阅读全文

posted @ 2012-03-17 18:10 Fear_Hao 阅读(275) 评论(0) 推荐(0) 编辑

摘要: View Code class TEST{public: size_t TestFun1() const;private: int mNum;};extern TEST temptest; //修改前TEST& tp() //修改后{ static TEST temptest; return temptest;}class TEST2{public: TEST2(TEST temptest) { mNum = temptest.TestFun1(); //修改前 mN... 阅读全文

posted @ 2012-03-17 11:26 Fear_Hao 阅读(424) 评论(0) 推荐(0) 编辑

2012年3月16日

摘要: View Code 当成员函数为const时 constness(常量性)bitwise constness:不更换对象内任何一个字节,编译器判断成员变量没有赋值动作即可。不足:class test{public: char& operator[](size_t index) const { return mPointer[index]; } test(const char* str) { mPointer = new char[strlen(str)+1]; memcpy(mPointer,str,strlen(str)... 阅读全文

posted @ 2012-03-16 17:49 Fear_Hao 阅读(1009) 评论(0) 推荐(0) 编辑

2012年3月15日

摘要: View Code class test{public: //默认构造函数 test(); //拷贝构造函数 test(const test& para); //重载拷贝赋值操作符 test& operator= (const test& para);};int main(){ test T1; //默认构造函数 test T2(T1); //拷贝构造函数 T1 = T2; //使用操作符拷贝 test T3 = T2; //拷贝构造函数 /*拷贝构造函数:同型对象初始化自我对象。 ... 阅读全文

posted @ 2012-03-15 20:38 Fear_Hao 阅读(189) 评论(0) 推荐(0) 编辑

2012年2月24日

摘要: View Code #include <stdio.h>class Singleton{public: static Singleton* Intance() { if(!mSingleTon) mSingleTon=new Singleton(); return mSingleTon; }protected: Singleton() { printf("object init"); }private: static Singleton* mSingleTon;};Singleton* S... 阅读全文

posted @ 2012-02-24 20:02 Fear_Hao 阅读(164) 评论(0) 推荐(0) 编辑

2012年2月16日

摘要: View Code 如果以最高位为符号位,二进制原码最大为01111111=2的7次方=127,最小为11111111=-2的7次方=-127此时0有两种表示方法,即正0和负0:00000000=10000000=0。所以,二进制原码表示时,范围是-127~-0和0~127,因为有两个零的存在,所以能表示不同的数值个数一共只有2的8次方-1个,而16位二进制能够表示的2的8次方个数值。 但是计算机中采用二进制补码存储数据,即正数编码不变,从00000000到01111111依旧表示0到127,而负数需要把除符号位以后的部分取反加1,即-127的补码为10000001。 到此,再来看原码... 阅读全文

posted @ 2012-02-16 19:54 Fear_Hao 阅读(246) 评论(0) 推荐(0) 编辑

2012年2月8日

摘要: View Code #pragma comment(lib,"user32")#include <windows.h>#include <time.h>char HHMM[6];time_t t;int i,r;int main() { while (1) { for (i=0;i<10;i++) Sleep(1000); time(&t); strftime(HHMM,6,"%H:%M",localtime(&t)); if (IDCANCEL==MessageBox(NULL,HHMM,"Tim 阅读全文

posted @ 2012-02-08 12:38 Fear_Hao 阅读(371) 评论(0) 推荐(0) 编辑