欢迎来到天天文库
浏览记录
ID:38256636
大小:813.38 KB
页数:20页
时间:2019-06-06
《C++语言学习记录》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、左值与右值见C++primer中文版39页变量的声明与定义的区别:见C++primer中文版45页变量的两种初始化形式:inta(10)和inta=10;关键字-register:这个关键字请求编译器尽可能地将变量存在CPU的内部寄存器中,而不是通过内存寻址访问提高效率。使用register的限制:register变量必须是能被CPU寄存器所接受的的类型。register变量必修是一个单值,并且长度小于等于整型的长度,而且寄存器变量可能不存放在内存中,所以不能使用取地址运算符&来获得寄存器register变量的地址。作用域
2、操作符::作用域:变量在程序中的起作用范围简单分为:全局作用域、局部作用域、语句作用域作用域优先级:范围越小优先级越高作用域运算符:“::”如果希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上“::”,“::”称为作用域运算符 #includeintavar=10; //全局变量avarvoidmain(){ intavar=20; //局部变量avar cout<<"avaris:"<3、 //修改局部变量 cout<<"avaris:"<4、,age=yy;} voidprint(){......}private stringname; intage; }; //C++类的结尾处应该以“;”结束JAVA类定义不需要在括号后加;第3章函数与函数模板主函数C++//自由函数intmain(intargc,char*argv[]){printf("Hello,world");} Java//每个函数必须是类成员;当java类运行时类中的主函数就会被调用//(所以你可以为每个类写一个主函数--这样用于给类写单元测试时会很方便)classHell5、oWorld{publicstaticvoidmain(Stringargs[]){System.out.println("Hello,World");}}默认参数在函数原型中说明,可以多于一个,但必须放在参数序列的后部。如果一个默认参数需要指明一个特定值,则在其之后的所有参数都必须赋值。使用默认参数就不能对少于参数个数的函数进行重载。Java语言调用方法时参数不支持缺省赋值(默认参数值),C++支持默认参数值。方法的重载(overload)和覆盖(override)的联系与区别 有的时候,类的同一种功能有多种实现方式,到6、底采用哪种实现方式,取决于调用者给定的参数。例如我们最常用的System.out.println()能够打印出任何数据类型的数据,它有多种实现方式。运行时,Java虚拟机先判断给定参数的类型,然后决定执行哪个println()方法。 重载(overload):对于类的方法(包括从父类中继承的方法),方法名相同,参数列表不同的方法之间就构成了重载关系。这里有两个问题需要注意:(1) 什么叫参数列表?参数列表又叫参数签名,指三样东西:参数的类型,参数的个数,参数的顺序。这三者只要有一个不同就叫做参数列表不同。(2) 7、 重载关系只能发生在同一个类中吗?非也。这时候你要深刻理解继承,要知道一个子类所拥有的成员除了自己显式写出来的以外,还有父类遗传下来的。所以子类中的某个方法和父类中继承下来的方法也可以发生重载的关系。大家在使用的时候要紧扣定义,看方法之间是否是重载关系,不用管方法的修饰符和返回类型以及抛出的异常,只看方法名和参数列表。而且要记住,构造器也可以重载。 覆盖(override):也叫重写,就是在当父类中的某些方法不能满足要求时,子类中改写父类的方法。当父类中的方法被覆盖了后,除非用super关键字,否则就无法再调用父类8、中的方法了。发生覆盖的条件:1、“三同一不低”子类和父类的方法名称,参数列表,返回类型必须完全相同,而且子类方法的访问修饰符的权限不能比父类低。2、子类方法不能抛出比父类方法更多的异常。即子类方法所抛出的异常必须和父类方法所抛出的异常一致,或者是其子类,或者什么也不抛出;3、被覆盖的方法不能是final
3、 //修改局部变量 cout<<"avaris:"<4、,age=yy;} voidprint(){......}private stringname; intage; }; //C++类的结尾处应该以“;”结束JAVA类定义不需要在括号后加;第3章函数与函数模板主函数C++//自由函数intmain(intargc,char*argv[]){printf("Hello,world");} Java//每个函数必须是类成员;当java类运行时类中的主函数就会被调用//(所以你可以为每个类写一个主函数--这样用于给类写单元测试时会很方便)classHell5、oWorld{publicstaticvoidmain(Stringargs[]){System.out.println("Hello,World");}}默认参数在函数原型中说明,可以多于一个,但必须放在参数序列的后部。如果一个默认参数需要指明一个特定值,则在其之后的所有参数都必须赋值。使用默认参数就不能对少于参数个数的函数进行重载。Java语言调用方法时参数不支持缺省赋值(默认参数值),C++支持默认参数值。方法的重载(overload)和覆盖(override)的联系与区别 有的时候,类的同一种功能有多种实现方式,到6、底采用哪种实现方式,取决于调用者给定的参数。例如我们最常用的System.out.println()能够打印出任何数据类型的数据,它有多种实现方式。运行时,Java虚拟机先判断给定参数的类型,然后决定执行哪个println()方法。 重载(overload):对于类的方法(包括从父类中继承的方法),方法名相同,参数列表不同的方法之间就构成了重载关系。这里有两个问题需要注意:(1) 什么叫参数列表?参数列表又叫参数签名,指三样东西:参数的类型,参数的个数,参数的顺序。这三者只要有一个不同就叫做参数列表不同。(2) 7、 重载关系只能发生在同一个类中吗?非也。这时候你要深刻理解继承,要知道一个子类所拥有的成员除了自己显式写出来的以外,还有父类遗传下来的。所以子类中的某个方法和父类中继承下来的方法也可以发生重载的关系。大家在使用的时候要紧扣定义,看方法之间是否是重载关系,不用管方法的修饰符和返回类型以及抛出的异常,只看方法名和参数列表。而且要记住,构造器也可以重载。 覆盖(override):也叫重写,就是在当父类中的某些方法不能满足要求时,子类中改写父类的方法。当父类中的方法被覆盖了后,除非用super关键字,否则就无法再调用父类8、中的方法了。发生覆盖的条件:1、“三同一不低”子类和父类的方法名称,参数列表,返回类型必须完全相同,而且子类方法的访问修饰符的权限不能比父类低。2、子类方法不能抛出比父类方法更多的异常。即子类方法所抛出的异常必须和父类方法所抛出的异常一致,或者是其子类,或者什么也不抛出;3、被覆盖的方法不能是final
4、,age=yy;} voidprint(){......}private stringname; intage; }; //C++类的结尾处应该以“;”结束JAVA类定义不需要在括号后加;第3章函数与函数模板主函数C++//自由函数intmain(intargc,char*argv[]){printf("Hello,world");} Java//每个函数必须是类成员;当java类运行时类中的主函数就会被调用//(所以你可以为每个类写一个主函数--这样用于给类写单元测试时会很方便)classHell
5、oWorld{publicstaticvoidmain(Stringargs[]){System.out.println("Hello,World");}}默认参数在函数原型中说明,可以多于一个,但必须放在参数序列的后部。如果一个默认参数需要指明一个特定值,则在其之后的所有参数都必须赋值。使用默认参数就不能对少于参数个数的函数进行重载。Java语言调用方法时参数不支持缺省赋值(默认参数值),C++支持默认参数值。方法的重载(overload)和覆盖(override)的联系与区别 有的时候,类的同一种功能有多种实现方式,到
6、底采用哪种实现方式,取决于调用者给定的参数。例如我们最常用的System.out.println()能够打印出任何数据类型的数据,它有多种实现方式。运行时,Java虚拟机先判断给定参数的类型,然后决定执行哪个println()方法。 重载(overload):对于类的方法(包括从父类中继承的方法),方法名相同,参数列表不同的方法之间就构成了重载关系。这里有两个问题需要注意:(1) 什么叫参数列表?参数列表又叫参数签名,指三样东西:参数的类型,参数的个数,参数的顺序。这三者只要有一个不同就叫做参数列表不同。(2)
7、 重载关系只能发生在同一个类中吗?非也。这时候你要深刻理解继承,要知道一个子类所拥有的成员除了自己显式写出来的以外,还有父类遗传下来的。所以子类中的某个方法和父类中继承下来的方法也可以发生重载的关系。大家在使用的时候要紧扣定义,看方法之间是否是重载关系,不用管方法的修饰符和返回类型以及抛出的异常,只看方法名和参数列表。而且要记住,构造器也可以重载。 覆盖(override):也叫重写,就是在当父类中的某些方法不能满足要求时,子类中改写父类的方法。当父类中的方法被覆盖了后,除非用super关键字,否则就无法再调用父类
8、中的方法了。发生覆盖的条件:1、“三同一不低”子类和父类的方法名称,参数列表,返回类型必须完全相同,而且子类方法的访问修饰符的权限不能比父类低。2、子类方法不能抛出比父类方法更多的异常。即子类方法所抛出的异常必须和父类方法所抛出的异常一致,或者是其子类,或者什么也不抛出;3、被覆盖的方法不能是final
此文档下载收益归作者所有