第六章 函数_newloser-编程思维

6.1函数基础 调用函数:函数的调用将完成两项工作,一是实参初始化函数对应的形参;二是控制权从从主调函数转移到被调函数,主调函数的执行被中断,被调函数开始执行。当函数遇到return语句时,也要完成两项工作,一是返回return语句中的值(如有);二是控制权从被调函数转移到主调函数,被调函数被停止,主调函数继续往下执行。   对象作用域和声明周期:对象的名字有作用域也就是可见性,表示某个对象的名

第十五章 面向对象编程opp随笔_newloser-编程思维

面向对象编程的三个核心为数据抽象、继承和动态绑定。 继承: 派生类需要通过派生列表指明它从哪个或哪几个基类继承过来,这样,派生类将继承基类的所有成员(多继承将继承多个基类的所有成员)。 派生列表的访问控制符指明继承过来public成员是否为派生类的public成员,默认为public,如果指明private继承,则基类中的public和private成员在派生类中都会变成private成员。

6.2.6 含有可变形参的函数_newloser-编程思维

含可变形参函数,即传入的实参数量可变。 情形1:当传入的某几个连续实参类型一样是,可用模板类集合initilizer_list<T>的对象存放,当该模板类被创建时,元素的个数由传入的实参个数决定。 函数调用:                                        varpara(2, {2,3,4}, {"dd","ff"});  //注意,即使后两个集合是空

c++顶层const与底层const_newloser-编程思维

(1)顶层const即声明对象本身是一个常量,其内存中存放的值初始化后是不能更改的(且必须有初始化); 如:  const int i = 9;      //定义一个int型常量i,并初始化为9,此后i存储的值就不能更改了; int j; int* const p = &j;    // 定义一个int 型指针常量p存放变量j的地址,此后p存储的地址值或者说p的指向就不能更改了; 另外

数组基础篇(对应c++ primer plus 4.10)_newloser-编程思维

概要:数组是由一组同类型的元素组成的集合,在内存上是一片连续的存储空间。C++提供了三种数组的表示方法:普通数组,模板类vector(C++98 新增的标准模板库STL提供该模板类)和模板类array(C++11新增) 下面分别讨论这三种类型的数组是如何使用的以及他们的区别: 一,这三种数组如何被定义?初始化?元素如何被访问? (1)普通数组  普通数组定义和初始化:     typename

迭代器(iterator)_newloser-编程思维

介绍: ①迭代器可以看作是容器内置的指针,通过迭代器可以获得容器的某个元素的引用,(这里只是类比,迭代器和指针不是一个类型) ②容器提供了内置的迭代器操作方法.begin()和.end()成员函数。       begin()成员:返回容器第一个元素的迭代器;       end()成员:返回容器的尾后迭代器,即指向尾元素的下一个位置(一个不存在的元素) ③迭代器的定义和初始化:        

普通的内置数组语法基础_newloser-编程思维

数组即一组类型相同的元素组成的集合,存放在计算机内存的一片连续存储空间里,空间大小=元素个数x元素类型所占字节大小。C++提供一种内置的数组,后面将会用C++ 11新增更方便、安全的模板类array替代它,下面先介绍一下数组的语法。 首先说明一个概念:什么是普通指针?什么是数组指针?什么是指针数组? 普通指针:顾名思义就是基本数据类型的指针 如 int *类型,string *等,有自己的内存空

第七章-类基础_newloser-编程思维

7.1 定义抽象数据类型 抽象数据类型的最大特点是其具有很高的封装性,我们无法直接访问其内部的数据,甚至我们不清楚其内部都有哪些类型的数据,我们仅使用其提供的各种接口(api)来对其数据进行访问和操作。 C++中的类就是一种抽象的数据类型,类的基本思想就是数据抽象和封装。 仅由一组数据组成的结构体并不是一种抽象的数据类型,因为我们能直接访问其内部数据,而不是通过接口访问。如下的Sales_dat