2012年7月16日
摘要: 友元机制允许一个类将对其非公有成员的访问权授予给指定的函数或类.关键字friend①使用例子:class A {成员.....};classB{public: friend class A;private: int a; double b;};此时A的成员可以直接引用B中的私有成员.②使其他类的成员函数成为友元 并没有把整个A类设为友元,B就可以指定只允许A的某个成员访问: class B{ friend A& A::relocate(A::index,A::index,Screen&); }; 此处将成员函数声明为友元时,函数必须用该函数所属的类名字加以限定(A::)③友元声 阅读全文
posted @ 2012-07-16 17:23 菠萝_Ho 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 上篇随笔中提到构造函数的介绍,这篇来深究一下.构造函数名与类名一致.构造函数的工作室保证每个对象的数据成员具有合适的初始值.例书店书籍构造体class Sales_item{ public: bool same_isbn(const Sales_item &rhs) const //判断两书的isbn是否相同.{ return isbn == rhs.isbn; } explicit Sales_item(const std::string &book): isbn(book), units_sold(0), revenue(0.0){} explicit Sales_item 阅读全文
posted @ 2012-07-16 17:04 菠萝_Ho 阅读(279) 评论(0) 推荐(0) 编辑
  2012年7月15日
摘要: 一,类的定义和声明."最简单地说来,类就是定义了一个新的类型和一个新的作用域"①定义class 类名{public:private:}; //分号不能省,因为在分号与右括号之间可以定义多个类对象.②构造函数创建类类型对象时,编译器会自动使用一个构造体函数来初始化该对象.构造函数是一个与类同名的成员函数,用于给每个数据成员设置初始值.类名(): data_member1(初始值), data_member2(初始值) {}③成员函数 成员函数在类内部定义默认为inline,在外部定义的函数必须标明在类的作用域中. 类型 类名::成员函数(参) {}定义重载成员函数 同名成员函 阅读全文
posted @ 2012-07-15 18:14 菠萝_Ho 阅读(1305) 评论(0) 推荐(0) 编辑
  2012年7月14日
摘要: 数组①显式初始化的数组不需要制定数组的维数值; intarr[] = {0,1,2}; //[]中维数值可以省略②vector使用vector::size_type作为下标的类型,数组下标类型是size_t;int main(){ const size_t array_size = 7; int ia1[] = {0,1,2,3,4,5,6}; int ia2[array_size]; //使用size_t类型数值来定义数组大小 for (size_t ix = 0; ix != array_size; ++ix) //从ia1复制数据到 ia2 ia2[ix] = ia1[ix]; ret. 阅读全文
posted @ 2012-07-14 21:41 菠萝_Ho 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 今天本来兴致勃勃的在看类,发生了一些意外,什么心情都没有了,结果勉勉强强的看了十来页.内容包括了类的定义与声明,隐含的this指针,类的作用域.没看出多大的究竟.明天重整心情再看 阅读全文
posted @ 2012-07-14 00:26 菠萝_Ho 阅读(99) 评论(0) 推荐(0) 编辑
  2012年7月12日
摘要: #include<bister>using std::bitset;一句话定义:可自定义位数,用作记录二进制的数据类型.一,定义和初始化bitset<n> b; //b有n位,每位都为0;bitset<n> b(u); //b是unsigned long型u的副本bitset<n> b(s);//b是string对象s中含有n位字符串的副本bitset<n> b(s, pos, n); //b是s中从pos位置开始的n个位置的副本bitset<n> b(s,pos);//b从s的pos位置开始取值到s末尾(注取的值从b的右 阅读全文
posted @ 2012-07-12 18:44 菠萝_Ho 阅读(3641) 评论(0) 推荐(1) 编辑
  2012年7月11日
摘要: #include<vector>using std::vector;一句话定义:vector相当一个储存多个相同类型变量的集合.一,定义和初始化vector<T> v1; //T为类型名vector<T> v2(v1); //v1赋值给v2vector<T> v3(n,i); //v3中含n个值为i的元素vector<T> v4(n); //v4中含n个初始化元素二,操作v.empty(); //判断v是否为空v.size(); //返回v长度v.begin(); //返回指向v第一个元素的值v.end(); //返回指向v最后一个元 阅读全文
posted @ 2012-07-11 22:34 菠萝_Ho 阅读(3095) 评论(0) 推荐(0) 编辑
摘要: 对string对象中的单个字符进行处理、判断.以下列出各种字符操作函数,适用于string对象的字符(或其他任何char值)这些函数都在 cctype头文件 中定义:isalnum(c) 如果c是字母或数字,则为trueisalpha(c) 如果c是字母,则为trueiscntrl(c) 如果c是控制字符,则为trueisdigit(c) 如果c是数字,则为trueisgraph(c) 如果c不是空格,但可打印,则为trueislower(c)如果c是小写字母,则为trueisprint(c)如果c是可打印的字符,则为trueispunct(c) 如果c是标点符号,则为trueisspace( 阅读全文
posted @ 2012-07-11 16:33 菠萝_Ho 阅读(274) 评论(0) 推荐(0) 编辑
  2012年7月10日
摘要: 写一个自己的头文件包括了以下几步:一、#include 源文件需要用到的标准库;(#include +<文件名>/"文件名" <>为标准系统头文件,""为非系统头文件,查找源于源文件所在路径)二、编写头文件的内容:因为头文件将会包含在多个源文件中,所以不应该含有变量和函数的定义,但有三个定义是例外的; ①类的定义;②const对象(常量);③inline函数; 需注意的是const对象在其他包含该头文件的源文件中是不可用的,但可以通过在头文件中const定义前添加extern使其被多个文件共享; 但必须遵循的是"一次定义 阅读全文
posted @ 2012-07-10 23:06 菠萝_Ho 阅读(6671) 评论(0) 推荐(1) 编辑
  2012年7月9日
摘要: 怀着一股无比激动的心情来到广东某工业大学,触碰自己梦想的开端.我经过努力,终于如愿的进入了工作室.虽然,工作室没有我最想要学到的游戏开发,但我很乐意去借助团队的力量,去建立我的知识基础,去丰富我的团队合作能力.从C++开始,我很少掏钱去买书,这次我狠下心花了一张红毛爷来买了一本正版的C++ Primer 第四版,还配书签,感觉赚了.考试月最后一个星期才送到的,考完试有空就看了几个小时,虽然我记笔记的习惯不太好,但我对感兴趣的东西真的会过目不忘.例子~~~今晚团队开完会后在工作室,一个company在测试一段代码的时候我发现它是用输入流来作为while语句的条件.即while(cin>&g 阅读全文
posted @ 2012-07-09 23:43 菠萝_Ho 阅读(188) 评论(0) 推荐(0) 编辑