博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【java&c++】父子类中同名函数的覆盖问题
阅读量:6391 次
发布时间:2019-06-23

本文共 1275 字,大约阅读时间需要 4 分钟。

java和c++两门语言对于父子类中同名函数具有不同的处理方式。

先上两段代码:

C++:class Basic{public:    void test(string i){        cout << "basic str" <
, allocator
>') to 'long' 修改标红的代码--> ps.Basic::test(str) 则可以编译成功,并输出预期的结果 senior 1 basic str
 

 

public class Basic{    public int testException(int val) {        try{            int j = 3/1;            return j;        }        catch(Exception e){            return -1;        }    }    public String testException(String val) {        try{            return new String("ac");        }        catch(Exception e){            return new String("bc");        }    }};public class Senior extends Basic{    public Long testException(Long val) {        try{            return  (long) 9;        }        catch(Exception e){            return (long) 7;        }    }}public static void main(String args[]) throws InstantiationException, IllegalAccessException, SecurityException, Exception{    // 向控制台输出信息        Senior ba = new Senior();    System.out.println("basic:" + ba.testException(2));    System.out.println("basic:" + ba.testException("123"));  }} 输出结果 basic:3 basic:ac
 
 

比较这个例子中的不同,原因是java语言中父类和子类的同名函数做的是重载处理,而C++中是隐藏父类中的函数,如果需要调用父类中同名函数,需要显式指定调用(通过class::funtion_name)。

转载于:https://www.cnblogs.com/seyjs/p/6245775.html

你可能感兴趣的文章
Python——SSHClient.py
查看>>
MVC解决更新冲突问题
查看>>
江西理工大学南昌校区cool code竞赛
查看>>
[LeetCode] Trim a Binary Search Tree 修剪一棵二叉搜索树
查看>>
Ubuntu SDL lib 安装
查看>>
Java 并发编程内部分享PPT分享
查看>>
关于discuz中禾金投票系统循环出现引导页的问题
查看>>
C#开源系统大汇总
查看>>
Linux服务器安全初始化自选安装Shell脚本
查看>>
PyCharm教程
查看>>
Python 简单的数据结构(一)
查看>>
谁说我们只会做工作流?做实验室管理系统我们也内行。
查看>>
yum安装开发库
查看>>
我的友情链接
查看>>
开源Python网络爬虫资料目录
查看>>
NSRunLoop Internals
查看>>
Hadoop2.4.1分布式安装
查看>>
PHP利用socket来实现POST数据
查看>>
Connection is read-only问题的产生原因与解决方法
查看>>
Proxmox VE 部署维护
查看>>