C++编程基础知识三
1、语句:①符合语句也被称作块,一个块就是一个作用域,在块中引入的名字只能在块内部以及嵌套在块中的子块里访问;②switch语句:如果某个case标签执行成功,将从该标签开始往后顺序执行所有case分支;break命令:终止循环过程;【注】:一般不要省略case分支最后的break语句,如果没写break语句,最好加一段注释说明清楚程序的逻辑;③跳转语句:中断当前的执行过程;C++语言提供了4种跳转语句:break,continue,goto,return;break:终止离它最近的while,do while,for,swtch语句;continue:终止最近循环中的当前迭代并立即开始下一次迭代;跳出本次循环,执行下一次循环;goto:从goto语句无条件跳转到同一函数内的另一条语句;【注】:不要在程序中使用goto语句,因为它使得程序即难理解又不好修改;return:终止当前正在执行的函数并将控制权返回到调用该函数的地方;


4、类:自定义数据类型①类的基本思想是数据抽象和封装;数据抽象:是一种依赖于接口和实现分离的胆咣骜岱编程技术;其中,接口是用户所能执行的操作;实现包括类的数据成员、负责接口实现的函数和私有函数;封装:实现了接口和实现的分离;封装后的类隐藏了它的实现细节,类的用户只能使用接口而无法访问实现部分;②成员函数:成员函数的声明必须在类的内部,定义即可在内部也可在类的外部;非成员函数;成员函数通过一个名为this的额外隐式参数来访问调用它的对象;默认情况下,this的类型是指向类类型非常量版本的常量指针;定义一个返回this对象的函数:Sales_data& Sales_data::combine(const Sales_data &rhs){ units_sold +=rhs.units_sold;//rhs的成员加到this对象成员上; revenue +=rhs.revenue; return *this;//返回调用该函数的对象}调用函数:total.combine(trans);//解释:total的地址被绑定到隐式this参数上,rhs绑定到trans上;结果保存到total.units_sold中;③构造函数:类通过一个或几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数;构造函数的名字和类名相同;构造函数没有返回类型;类通过一个特殊的构造函数来控制默认初始化过程,这个函数叫做默认构造函数;默认构造函数无须任何实参;【注】:只有当类没有声明任何构造函数时,编译器才会自动地生成默认构造函数;Sales_data() = default;//默认构造函数;目的:既需要其他形式的构造函数,也需要默认的构造函数;构造函数初始化列表:每个成员名字紧跟括号括起来的成员初始值,不同成员的初始化通过逗号隔开;

6、类的静态成员:static,使其和类关联在一起;①静态成员类型:常量、引用、指针、类类型等;类的静态成员存在于任何对象之外,对象中不包含任何与静态数据成员有关的数据;静态成员不属于类的某个对象;Account对象包括两个数据成员:owner和amount对象;只存在一个interestRate对象,且被所有Account对象共享;静态成员函数也不和任何对象绑定在一起,不使用this指针;②虽然静态成员不属于类的某个对象,但仍然可以使用类的对象、引用或者指针来访问静态成员;但成员函数不用通过作用域就能直接使用静态成员;③定义静态成员:静态成员函数可以在类内部也可以在类外部定义;static关键字只能出现在类内部的声明语句;静态成员在类的外部定义和初始化每个静态成员;一旦被定义,就一直存在于程序的整个生命周期中;double Account::interestRate = initRate();//定义并初始化一个静态成员;④编译器分两步处理类:首先编译成员的声明;然后编译成员函数体;因此,成员函数体可以随意使用类中的其他成员而无须在意这些成员出现的次序;
