上一页 1 ··· 8 9 10 11 12 13 下一页
  2013年4月8日
摘要: 在学习《C++ Primer》容器相关章节的时候,看到这样一句话:“c.back() :返回容器 c 的最后一个元素的引用。如果 c 为空,则该操作未定义”(429页),但是在这句话之前,有这样一段代码: list<int>::reference last2 = ilist.back(); 这个问题可以深究一下:c.back()返回的是一个元素引用,而last2是一个list<int>类型的reference变量,翻阅前面的章节可知:reference 即“元素的左值类型,是 value_type& 的同义词”,显然,last2是引用类型,那问题来了,引用可以复 阅读全文
posted @ 2013-04-08 22:16 毋忆典藏 阅读(398) 评论(0) 推荐(0)
  2013年4月3日
摘要: 先看下面一段代码: 1 ifstream input; 2 vector<string>::const_iterator it = files.begin(); 3 // for each file in the vector 4 while (it != files.end()) { 5 input.open(it->c_str()); // open the file 6 // if the file is ok, read and "process" the input 7 if (!inp... 阅读全文
posted @ 2013-04-03 15:32 毋忆典藏 阅读(287) 评论(0) 推荐(0)
  2013年3月31日
摘要: 递归的概念、递归的工作原理以及递归的使用发放都不难理解,而且它可以是程序变得简洁,有着其独特的作用,在《数据结构》(殷人昆版)中也多次用到。但是就是这个看起来不难,又有可能很重要的知识点,理解起来总感觉很别扭,特别是看《C程序设计》(谭浩强版)这本书中“汉诺塔”问题的时候,被调来调去的参数搞得头晕,找视频学习也没听出了所以然来,看《C++ Primer》时看到一个例题,有了一点想法,在此记录:下面是一个求两个数最大公约数的函数: 1 // return the greatest common divisor 2 int gcd(int v1, int v2) 3 ... 阅读全文
posted @ 2013-03-31 17:30 毋忆典藏 阅读(226) 评论(0) 推荐(0)
摘要: 函数可以返回指向函数的指针,但是,正确写出这种返回类型相当不容易:1 // ff is a function taking an int and returning a function pointer 2 // the function pointed to returns an int and takes an int* and an int 3 int (*ff(int))(int*, int);阅读函数指针声明的最佳方法是从声明的名字开始由里而外理解。要理解该声明的含义,首先观察: ff(int) 将 ff 声明为一个函数,它带有一个 int 型的... 阅读全文
posted @ 2013-03-31 12:27 毋忆典藏 阅读(190) 评论(0) 推荐(0)
摘要: 参考下面这个网址中两段话,对《C++ Primer》中的这句话“函数调用的左操作数”进行理解:http://www.caole.net/diary/lvalue.html“C++中引入了引用类型(reference type),引用总是引用到某一对象或者函数上,因此当我们使用引用时,相当于对其引用的对象/函数进行操作,因而引用类型的表达式总是左值。(在分析表达式类型时,如果一个表达式expr最初具有T&类型,该表达式会被看作具有类型T的左值表达式)”“函数调用f()的返回类型为int&, 因此表达式f()的类型等价于一个int类型的左值表达式。而函数调用g()的返回类型为int 阅读全文
posted @ 2013-03-31 10:43 毋忆典藏 阅读(375) 评论(0) 推荐(0)
摘要: 《C++ Primer》中有这样一段话:“函数指针类型相当地冗长。使用 typedef 为指针类型定义同义词,可将函数指针的使用大大简化:(第 2.6 节):1 typedef bool (*cmpFcn)(const string &, const string &); 该定义表示 cmpFcn 是一种指向函数的指针类型的名字。该指针类型为“指向返回 bool 类型并带有两个 const string 引用形参的函数的指针”。在要使用这种函数指针类型时,只需直接使用 cmpFcn 即可,不必每次都把整个类型声明全部写出来。”参考《C程序设计》(谭浩强版)的相关章节,或题目为“ 阅读全文
posted @ 2013-03-31 09:47 毋忆典藏 阅读(190) 评论(0) 推荐(0)
  2013年3月30日
摘要: 本博文记录阅读《C++ Primer》过程中遇到的未理解知识点,便于日后回头有针对性的攻克。教材:《C++ Primer中文第四版(非扫描)》1.第369页有这么一句“。 正如前面第 7.8 节所提到的,当形参以副本传递时,不能基于形参是否为 const 来实现重载。”提示:可以下去7.8节去了解一下次日即2013-03-31问题解决详细:理解了下面这段代码,就理解了上面这个问题:1 Record lookup(Phone); 2 Record lookup(const Phone); // redeclaration 《C++ Primer》中是这样解释的:这“一对的区别... 阅读全文
posted @ 2013-03-30 22:50 毋忆典藏 阅读(269) 评论(0) 推荐(0)
摘要: 1.const指针样式:1 int errNumb = 0; 2 int *const curErr = &errNumb; // curErr is a constant pointer 解释:根据、《Think C++》”中介绍的读法(参考“http://zhidao.baidu.com/question/85791037.html?oldq=1&from=evaluateFrom”),上述指针可以解释为:curErr是一个const指针,它指向的是int型变量重点:首先:“与其他 const 量一样,const 指针的值不能修改,这就意味着不能使 curErr 指向其.. 阅读全文
posted @ 2013-03-30 22:25 毋忆典藏 阅读(142) 评论(0) 推荐(0)
摘要: 1.重载函数调用问题中的枚举类型提升1 void newf(unsigned char); 2 void newf(int); 3 unsigned char uc = 129; 4 newf(VIRTUAL); // calls newf(int) 5 newf(uc); // calls newf(unsigned char) 枚举类型 Tokens 只有两个枚举成员, 最大的值为 129。 这个值可以用 unsigned char 类型表示,很多编译器会将这个枚举类型存储为 unsigned char 类型。然而,枚举成员 VI... 阅读全文
posted @ 2013-03-30 22:06 毋忆典藏 阅读(304) 评论(0) 推荐(0)
摘要: 1.如果一个函数形参是string类型的引用,函数调用时,实参不能是C风格字符串或者字符串常量,这种情况下编译时不能通过的,下面是编译出错的示例代码: 1 //C风格字符串做实参,编译不能通过 2 3 void print(string &str) //形参是 非const的string型引用 4 { 5 cout<<str<<endl; 6 } 7 8 int main() 9 { 10 char *st="Value: ";11 print(st); //error:C风格字符串做实参12 13 return 0; 14 } 1 //字符 阅读全文
posted @ 2013-03-30 17:11 毋忆典藏 阅读(385) 评论(2) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 下一页