苹果手机爱底苹果账号忘记密码了怎么办

C++学习笔记(14)——虚函数与重载函数的区别 - 开源中国社区
当前访客身份:游客 [
当前位置:
)贴出作者(三二一、小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
虚函数与重载函数的区别&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&
&&& 重载函数在类型和参数数量上一定不相同,而重定义的虚函数则要求参数的类型和个数、函数返回类型相同;
&&& 虚函数必须是类的成员函数,重载的函数则不一定是这样;
&&& 构造函数可以重载,但不能是虚函数,析构函数可以是虚函数。
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&
iostream.h
{public:&&&&virtual&int&func(unsigned&char&ch)&...{return&--}}
&CDerive&:&
{&&&&int&func(char&ch)&...{return&++}&&&//此为函数重载}
{&&&&CBase&*p=new&CD&&&&int&n=p-&func(<span style="COLOR: #);&&&&&&&&//调用基类的&func()&&&&cout&&& the&result&is&:&&&&n&&}
&&&&&&&&&&&&&&&&&&&&&
运行结果:
&&&&&& the result is : 39
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
iostream.h
{public:&&&&virtual&int&func(unsigned&char&ch)&...{return&--}}
&CDerive&:&
{&&&&int&func(unsigned&char&ch)&...{return&++}&&&&&&//此为虚函数}
{&&&&CBase&*p=new&CD&&&&int&n=p-&func(<span style="COLOR: #);&&&&&&&&//调用派生类的&func()&&&&cout&&& the&result&is&:&&&&n&&}
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
运行结果:
&&&&&&& the result is : 41
原文链接:
共有0个评论
更多开发者职位上
有什么技术问题吗?
晨曦之光的其它问题
类似的话题以下试题来自:
单项选择题关于函数重载,下列叙述中错误的是A.重载函数的函数名必须相同B.重栽函数必须在参数个数或类型上有所不同C.重栽函数的返回值类型必须相同D.重栽函数的函数体可以有所不同
为您推荐的考试题库
你可能感兴趣的试题
1A. .,.* ,- > * ,::,:B. ++,--,new,delete,==C. sizeof,new,delete,++,--D. sizeof,new,delete,+,-2A.计算 a 和 b 所指字符串的长度之差 B.将 b 所指字符串连接到 a 所指字符串中
C.将 b 所指字符串连接到 a 所指字符串后面
D.比较 a 和 b 所指字符串的大小3A. classB. structC. defaultD. sizeof4A. 输入对话框B. 输出对话框C. 模式(模态)对话框D. 无模式对话框5A.setprecision(3) B.fixed C.setfill('*') D.stew(8)
热门相关试卷
最新相关试卷经检测你所在的网络可能存在爬虫,因资源限制,我们只能拒绝你的请求。
如果你是推酷的用户,可以以继续访问使用。
如有疑问,可将IP信息发送到
请求解封。求C++与C的区别(C++面向对象程序设计笔记二)?_生活百科_百科问答
求C++与C的区别(C++面向对象程序设计笔记二)?
提问者:庄思轩
一.1.C++对C语言的扩展 增加了许多功能和运算符;C++语言是C语言的超集,任何C语言程序都可在C++编译器过;C++对C的扩充包括两方面:对过程语言方面的扩充和对面向对象方面的扩充。 过程语言方面的扩充包括:注释,枚举和结构,任意点可定义变量,CONST和VOLATOLE是类型修饰符,作用域标识符(::),引用标识符& ,内联函数,new和delete 运算符,重载函数。面向对象方面的扩充:类,流。 2.C++与C的本质区别 C++是支持面向对象的,C是面向过程的。 3. 注释:C++中除了可用/* 和*/来表示注释之外,还可以用//开始注释,该注释到行尾结束,适用于较短注释,即每行的注释。注意:注释都不能嵌套。 4.枚举和结构:C++中枚举可能命名,一个枚举名主浊一个类型名,在定义一个枚举类型的变量时,不必在枚举名前加enum。同样在定义结构变量时,结构名前也不必加Struct.在类型说明时不能省略以上关键字。 5. 可以在任意点定义变量:C++将变量定义也作为一种语句,只要在使用前定义就行。 EG:main() { c=&a&;for(int i=0;i&26;i++,ch++)printf(&%d,%c\n&,i,ch);//按顺序打出小写字母//请注意变量i的定义点,这在C语言里是不允许的}6.const和volatile类型修饰符 const用于冻结一个变量,使其在程序中不能被修改。在用const说明变量时,必须对该变量进行初始化。在C++中不再使用宏#define. 用volatile修饰的变量,虽然在一段程序中没有明显被改动,单这个变量的值也会因为程序外部的原因(如中断等)而改变。 如:const float f=6.0;//必须初始化 f=8.5;//错,f不能修改 //const 也可用于指针变量 int *const p=&//指针p不可修改,但*p可修改 const int *p=&//*p不可修改,但指针p可修改7.作用域标识符(::) C++中增加的作用域标识符::用于对与局部变量同名的全局变量进行访问。作用域标识符::还可用于表示类的成员,这将在关于类的一节中说明。 如:int var=1; main(){int var=0;Printf(&%d\n&,var);var=:://引用全局变量printf(&%d\n&,var);}结果:0 1 8.引用标识符& C++中用&可派生出一个引用类型,即产生同一变量的另一个名字.引用在C++中非常普遍,主要用途是为用户定义类型指定操作,还可用于函数参娄的传递,对引用型参娄的操作,就是对实际台数的操作. 如:main() {int num=50; int& ref= ref+=10;printf(&num=%d&,num); }执行结果:num=60注意:若引用的是const变量,则编译器产生一个同值临时变量,引用的是该临时变量。 9. 内联函数 在C++中用标识符inline来定义内联函数,当编译时,对内联函数在其调用处反内联函数的代码插入,而不进行函数调用,以节省调用的开销。内联函数主要用于数目较少的小的函数中。如: iline int isnumber(char c) {return(c&&0&&&c&&9&)?1:0; } main() { printf(&&); scanf(&%c&,&c);if(isnumber(c)) printf(&it is a digit&);else printf(&it is not a digit&); } //if语句编译时变为if((c&&0&&&c&&9&)?1:0) 10. new delete 运算符 C++提供的运算符new delete 使编程都可以很方便地直接控制堆内存的分配和释放。new delete 的功能与C中的calloc及free库函数相似。New返回所申请空间的首指针,若无可分配空间,则返回0。 注意:用new申请的空间终须用delete来释放,而且指针值不能改变。 如:int *p; p= ... int *p-new int[100];//初始100个int型空间,首地赋给p ... int *p=new(5);//初始化一个int型空间,并赋初值5 ... int *pi=new int[10]; int *temp= temp= pi+=2;////注意:这名用delete pi是错的,//因为pi的值变化了,pi已不是指向new所分配内存的首地址了。 11.函数重载 所谓函数的重载,就是两个或者两个以上的C++函数可用同一个函数名。编译器将根据函数的实在参数的类型和个数与形式参数的匹配来决定调用哪个函数。 函数重载的判断规则:重载函数至少在参数个数,参数类型或者参数顺序上有所不同。如果几个函数的函数名称相同,但参数类型,参数个数,参数顺序上有所不同,则认为是合法的重载函数。但如果仅仅是返回类型不同,则不是合法的重载函数。 函数重载的原则:重载函数应当执行相同的的功能,它们的差异在于参数不同,让重载函数执行不同的功能,不是良好的编程风格 如:int print(int); int print(int,int); int print(float); 以上三个函数是互不相同的函数,是正确的函数重载说明。 如:float print(int); int print(int); char print(int); 以上三个函数是错误的函数重载说明,因为返回值不能用于区分同名函数。 二.C++对C语言在面向对象的编程语言方面的扩展1.对面向对象的类的概念的支持 面向对象的方法中最基本的概念之一就是类。作为面向对象的语言必须提供对类的支持。在C++中,为了达到这一目的,引入了一种新的数据类型class,它是对C语言的数据struct的自然扩展,class的使用同struct非常相似。2.C++中类的特点和本质 类是C++中将数据和作用在这些数据上的运算组合在一起的一种数据类型,是C++中提供可复用性的基本单元。 类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的运算封装在一志的集合体。类的结构是用来确定一类对象的行为和特征的,它们是通过内部数据结构和相关的运算来确定的。这些行为是通过一种运算接口来描述的,使用者关心的只是接口的功能,对具体的实现过程并不感兴趣。 三.流1.流的作用:I/O操作在程序中是非常重要的部分,在C语言中I/O操作是通过C语言中的标准输入输出库函数来完成的。而在C++中,则用流来代替了C语言中的这些标准输入输出库函数。流是面向对象的I/O机制。C++提供了一个用于输入输出操作的体系,使输入和输出操作大为简化。2.流的特点:流是一个抽象的概念,在实际操作时必须与具体设备连接起来。3.C++中预定义的流设备 cin 与标准输入设备相关联 cout与标准输出设备相关联 cerr 与标准错误输出设备相关联(非缓冲方式) clog 与标准错误输出设备相关联(缓冲方式) 操作系统在缺省情况下,指定标准输出设备是显示终端,标准输入设备是键盘。在任何情况下指定的标准错误输出设备是显示终端。 如:void main(int argc.char*argv[]) { if(argc!=2) cout&&&Usage:prog an string&CR&&&&else{cout&&&enter an interger:&;cin&&cout&&&the user is&&&argv[1]&&cout&&&the data you entered is&&&data&&} }
回答者:钱良行
Mail: Copyright by ;All rights reserved.

我要回帖

更多关于 苹果手机忘记账号 的文章

 

随机推荐