C++Primer 5th Chap6 Functions】的更多相关文章

局部静态变量,关键字static修饰,即使函数结束执行也不受影响,生存期直到程序终止. java中static的单一存储空间的概念与其或有异曲同工之妙. 函数的形参可以无名,但有名可以使其意义更加清晰. 分离式编译的一种模式:头文件中声明函数,在name.cpp文件中定义,最后在name_main.cpp中实现 若函数传值调用,则实参和形参为两个独立的个体:若函数传引用调用,形参为实参的别名,即同一个体 形参为指针: 例如:void reset(int *p){ *p=0;//解引用改变所指对象…
这阵子真是太忙了, 连续做了四个课设. 当然这并不能作为好久没写博客的借口, 没写博客的主要原因只有一个: 懒. 最近又开始回顾C++的语法与特性(据说C++就是一门需要反复回顾的语言),以及学习C++的编程规范. 敲了C++Primer 5th 上的一道典型的练习题,纪念一下这即将过去的2016. 题目描述: 定义你自己版本的 StrBlobPtr, 更新 StrBlob类, 加入恰当的 friend 声明及begin 和 end 成员. 这道题目主要是练习 智能指针 share_ptr 和…
这几天看了C++ primer 5th的一二章,有很多收获,但是有的地方因为翻译的问题也搞得理解起来颇为难受啊啊啊啊.尤其是const限定符,在C语言并没有这么多复杂的语法,在C++里面语法细节就多的不行. 顺便做了两张思维导图 思维导图 细节补充 第一章 这一章没什么好说的,主要介绍了顺序选择循环三种基本语句,输入输出流的概念,注释,ADT(抽象数据类型)的概念初识和类的简单介绍. 由于有C语言的数据结构的基础,所以除了C++自带输入输出流似乎也没什么可说的. 1.iostream 标准输入输…
*****代码在Ubuntu g++ 5.31 / clang++ 3.8(C++11)下编写调试***** 每个C++程序必须有一个main( )函数,main( )函数的返回值也必须是int类型,操作系统通过调用main( )函数来运行C++程序. 1.函数格式 函数:C++的函数是一个能够完成一个功能的模块或者说是一段命名了的代码块. 完整函数的组成: ①返回类型:不一定有返回值,故不一定有返回类型 ②函数名:根据名字标识完成特定功能的模块,必须存在 //lambda匿名函数除外 ③形参列…
#include <iostream> using namespace std; int main() { ][]={,,,,,,,,,,,}; /* for(int (&i)[4]:a) for(int (&j):i) cout<<j<<endl; */ /* for(int i=0;i<3;i++) for(int j=0;j<4;j++) cout<<a[i][j]<<endl; */ /* for(int (*…
模板是C++中泛型编程的基础,一个模板就是创建一个类或者函数的蓝图或者说公式. C++模板分为函数模板和类模板. 类模板则可以是整个类是个模板,类的某个成员函数是个模板,以及类本身和成员函数分别是不同的模板. 1.函数模板 函数模板以关键字template开始,后接尖括号括起来的模板参数列表,模板参数列表不允许是空的,也即模板参数至少有一个或多个,多个之间使用逗号分割. 模板参数表示的是函数中用到的类型或者是一个值.当我们使用模板时,根据提供的实参推断出实参的类型,该类型即被用于绑定到模板参数,…
面向对象程序设计的核心思想是:数据抽象.继承和动态绑定. 数据抽象:将类的接口与实现分离: 继承:定义相似类型并对相似关系建模: 动态绑定:一定程度上上忽略相似类型间的区别,用同一方式使用它们. 1.继承 通过继承联系在一起的类构成层次关系.层次关系的最底层或者说根部叫做基类,直接或者间接从基类继承而来得到的类叫做派生类. 基类负责定义该层次上共有的特性,派生类在基类的基础上根据自身需求进行扩展. 在面向对象程序设计的继承中,基类将需要进行扩展的函数与原封不动直接继承的函数进行区分对待.需要进行…
当一个对象的引用或者指针离开作用域时,析构函数不会执行. 构造函数有初始化部分(初始化列表)和函数体. 析构函数有析构部分和函数,但析构函数的析构部分是隐式的.…
练习12.1:在此代码的结尾,b1 和 b2 各包含多少个元素? StrBlob b1; { StrBlob b2 = {"a", "an", "the"}; b1 = b2; b2.push_back("about"); } b2被销毁,b1包含4个元素. 练习12.2:编写你自己的StrBlob 类,包含const 版本的 front 和 back. const string& StrBlob::front() c…
练习11.1:描述map 和 vector 的不同. map是关联容器,vector是顺序容器,关联容器与值无关,vector则与值密切相关 练习11.2:分别给出最适合使用 list.vector.deque.map以及set的例子. list链表vector动态数组deque队列map映射set集合 练习11.3:编写你自己的单词计数程序. #include <iostream> #include <map> void words_count() { std::map<s…