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

先上两段代码:

C++:

class Basic
{
public:
void test(string i){
cout << "basic str" <<endl;
}
void test(int i){
cout << "basic" <<endl;
} }; class Senior : public Basic
{ public:
void test(long i){
cout << "senior 1" <<endl;
} }; int main(int argc, const char * argv[]) {
// insert code here...
std::cout << "Hello, World!\n"; Senior ps;
ps.test();
string str("c");
ps.test(str);
return ;
} //输出结果
编译错误,提示No viable conversion from 'string' (aka 'basic_string<char, char_traits<char>, allocator<char> >') 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)。

【java&c++】父子类中同名函数的覆盖问题的更多相关文章

  1. tips:Java的Random类和Random函数

    tips:Java的Random类和Random函数! 随机数是一个很有趣的东西,在java中可以通过下面这2种方法得到: (1)Random类: Random类是java.util.Random这个 ...

  2. 编译器如何处理C++不同类中同名函数(参数类型个数都相同)

    转载请注明出处,版权归作者所有 lyzaily@126.com yanzhong.lee 作者按: 从这篇文章中,我们主要会认识到一下几点: 一.不类中的特征标相同的同名函数,它们是不同的函数,原因就 ...

  3. 教你在Java的普通类中轻松获取Session以及request中保存的值

    曾经有多少人因为不知如何在业务类中获取自己在Action或页面上保存在Session中值,当然也包括我,但是本人已经学到一种办法可以解决这个问题,来分享下,希望对你有多多少少的帮助! 如何在Java的 ...

  4. 类中成员函数与数据成员private/pubic/protected

    类中成员函数与数据成员private/pubic/protected

  5. java.util.Stack类中的peek()方法

    java.util.stack类中常用的几个方法:isEmpty(),add(),remove(),contains()等各种方法都不难,但需要注意的是peek()这个方法. peek()查看栈顶的对 ...

  6. cocos2dx lua 绑定之一:自动绑定自定义类中的函数

    cococs2dx 3.13.1 + vs2013 + win10 1.首先定义C++类Student 在cocos2d-x\cocos文件夹下新建一个user_define的文件夹放置两个文件. 注 ...

  7. C++解析(16):友元与类中的函数重载

    0.目录 1.友元的尴尬能力 2.类中的函数重载 3.小结 1.友元的尴尬能力 什么是友元? 友元是C++中的一种关系 友元关系发生在函数与类之间或者类与类之间 友元关系是单项的,不能传递 友元的用法 ...

  8. string类中getline函数的应用

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  9. 23.C++- 继承的多种方式、显示调用父类构造函数、父子之间的同名函数、virtual虚函数

     上章链接: 22.C++- 继承与组合,protected访问级别 继承方式 继承方式位于定义子类的”:”后面,比如: class Line : public Object //继承方式是publi ...

随机推荐

  1. 【翻唱】学习日语歌 (青鸟)火影忍者 OP

    我的翻唱:https://node.kg.qq.com/play?s=Q1cY4PQ2-2VP6QOM&g_f=personal 中文音译: 哈巴哒伊哒啦 摸多啦呐伊哆伊迭 内杂西耷诺哇 啊哦 ...

  2. Cocos2d-X多线程(4) 在子线程中进行网络请求

    新版本的android系统已经不允许在UI线程中进行网络请求了,必须新建一个线程. 代码实操: 头文件: #ifndef __TestThreadHttp_SCENE_H__ #define __Te ...

  3. Java基础/网络经验

    一.Java新特性好文--掘金 1.Java8 新特性指导手册 2.Java 11 已发布,String 还能这样玩 二.Java避坑 1.为什么阿里巴巴不建议在for循环中使用"+&quo ...

  4. java读取文件完整版

    public static void readFileByBytes(String fileName) { File file = new File(fileName); InputStream in ...

  5. tail命令 查看文件尾部 输出文件后n行,默认查看文件的后10行

    tail命令 查看文件尾部  用于查看日志 默认查看文件的后10行 -n 3 数字   也可以忽略-n 直接加数字 tail 3 查看文件后3行 [root@localhost ~]# tail /e ...

  6. scrapy架构图与执行流程

    概览 本文描述了Scrapy的架构图.数据流动.以及个组件的相互作用 架构图与数据流 上图中各个数字与箭头代表数据的流动方向和流动顺序,具体执行流程如下: 0. Scrapy将会实例化一个Crawle ...

  7. Solution for automatic update of Chinese word segmentation full-text index in NEO4J

    Solution for automatic update of Chinese word segmentation full-text index in NEO4J 1. Sample data 2 ...

  8. 091、万能的数据收集器 Fluentd (2019-05-15 周三)

    参考https://www.cnblogs.com/CloudMan6/p/7798224.html   前面的ELK 中我们使用的是 Filebeat 收集Docker日志,利用的是默认的loggi ...

  9. redis 模拟jedis 操作string类型数据

    一.思路分析 redis数据传输遵循resp协议,只需要按照resp协议并通过socket传递数据到redis服务器即可 resp数据格式: 二.具体实现 package com.ahd.jedis; ...

  10. 定义Vue-router的动态路由,获取传过来的动态参数

    设置:在router目录下的index.js文件中,对path属性加上/:id 获取:使用router对象的params.id