写一个程序,各写出重载覆盖
1 //
// main.cpp
// 2013-7-17作业2
//
// Created by 丁小未 on 13-7-17.
// Copyright (c) 2013年 dingxiaowei. All rights reserved.
//
//2.在一个程序中,各写出重载覆盖隐藏的成员函数
#include <iostream>
using namespace std; class A
{ public:
void func()
{
cout<<"A的func()"<<endl;
}
void func1(int i)
{
cout<<"A的func1()"<<" 参数是:"<<i<<endl;
}
virtual void func2()
{
cout<<"A的func2()"<<endl;
}
virtual void func2(int i)
{
cout<<"A的func2()"<<" 参数是:"<<i<<endl;
}
}; class B:public A
{
public:
void func() //基类没有virtual关键字就是表示基类被隐藏
{
cout<<"B的func()"<<endl;
}
void func2() //基类有virtual关键字就表示基类方法被覆盖
{
cout<<"B的func2()"<<endl;
}
void func2(int i)
{
cout<<"B的func2()"<<" 参数:"<<i<<endl;
}
};
int main(int argc, const char * argv[])
{
A a1;
A *a2=&a1;
B b1;
A *a3=&b1;
B *b2=&b1;
a1.func(); //A的func()
a1.func1(); //A的func1() 1
a2->func1(); //A的func1() 2
a2->func2(); //A的func2() 3
a2->func(); //A的func()
a3->func(); //A的func()
a3->func1(); //A的func1() 4
a3->func2(); //B的func2()
a3->func2(); //B的func2() 5
b1.func(); //B的func()
b1.func2(); //B的func2()
b2->func(); //B的func()
b2->func2(); //B的func2()
b2->func1(); //A的func1() 6
b2->A::func2(); //A的func2() 7
return ;
} 如果基类中函数不是虚函数,子类也有这个同名同参数函数,那么基类函数被隐藏;如果基类中该函数是虚函数,那么就是覆盖,如果在同一个类中,两个 函数名字相同,参数或返回类型不同,那么就是属于函数的重载

C++重载覆盖隐藏的更多相关文章

  1. c/c++:重载 覆盖 隐藏 overload override overwrite

    http://www.cnblogs.com/qlee/archive/2011/07/04/2097055.html 成员函数的重载.覆盖与隐藏成员函数的重载.覆盖(override)与隐藏很容易混 ...

  2. c++ 继承 虚函数与多态性 重载 覆盖 隐藏

    http://blog.csdn.net/lushujun2011/article/details/6827555 2011.9.27 1) 定义一个对象时,就调用了构造函数.如果一个类中没有定义任何 ...

  3. c++中 重载 覆盖 隐藏的区别 附加 mutable笔记

    成员函数被重载的特征有: 1) 相同的范围(在同一个类中): //2) 函数名字相同: 3) 参数不同: 4) virtual关键字可有可无. 覆盖的特征有: 1) 不同的范围(分别位于派生类与基类) ...

  4. C++中的重载,隐藏,覆盖,虚函数,多态浅析

    直到今日,才发现自己对重载的认识长时间以来都是错误的.幸亏现在得以纠正,真的是恐怖万分,雷人至极.一直以来,我认为重载可以发生在基类和派生类之间,例如: class A { public: void ...

  5. 【C++】三大概念要分清--重载,隐藏(重定义,覆盖(重写)

    { c++三大概念要分清--重载,隐藏(重定义),覆盖(重写)} 重载 •  概念:在同一个作用域内:函数名相同,参数列表不同(参数个数不同,或者参数类型不同,或者参数个数和参数类型都不同),返回值类 ...

  6. c++三大概念要分清--重载,隐藏(重定义),覆盖(重写)

    重载,隐藏(重定义),覆盖(重写)—这几个名词看着好像很像,不过其实一样都不一样!! 综述: 说明:覆盖中的访问修饰符可以不同是指可以不用显示地用virtual:当访问修饰符改为const或者stat ...

  7. c++面试常用知识(sizeof计算类的大小,虚拟继承,重载,隐藏,覆盖)

    一. sizeof计算结构体 注:本机机器字长为64位 1.最普通的类和普通的继承 #include<iostream> using namespace std; class Parent ...

  8. c++ 覆盖、重载与隐藏

    成员函数被重载的特征:(1)相同的范围(在同一个类中):(2)函数名字相同:(3)参数不同:(4)virtual 关键字可有可无.覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生 ...

  9. C++中的重载隐藏覆盖&&JAVA中的重载覆盖&&多态

    class 类继承默认是private, struct 默认继承是public C++中的隐藏: 只要派生类中出现和基类一样的函数名,基类中的函数就会被派生类中的函数给隐藏(如果派生类和基类中的函数名 ...

随机推荐

  1. 《Head First Servlet JSP》容器工作原理(如tomcat)

  2. poj 2378 (dijkstra)

    http://poj.org/problem?id=2387 一个dijkstra的模板题 #include <stdio.h> #include <string.h> #de ...

  3. java web 学习 --第八天(Java三级考试)

    第七天的学习内容:http://www.cnblogs.com/tobecrazy/p/3464231.html EL表达式 EL : Expression Language 使用EL表达式可以减少& ...

  4. 8. javacript高级程序设计-BOM

    1. BOM 1.1 window BOM的核心对象是window,它表示浏览器的一个实例.在浏览器中,window对象有双重身份, 1.1.1 全局作用域 由于window对象同时扮演着ECMASc ...

  5. Match:Keywords Search(AC自动机模板)(HDU 2222)

    多模匹配 题目大意:给定很多个字串A,B,C,D,E....,然后再给你目标串str字串,看目标串中出现多少个给定的字串. 经典AC自动机模板题,不多说. #include <iostream& ...

  6. Java Socket编程题库

    一.    填空题 ___ IP地址____用来标志网络中的一个通信实体的地址.通信实体可以是计算机,路由器等. 统一资源定位符URL是指向互联网"资源"的指针,由4部分组成:协议 ...

  7. August 19th 2016 Week 34th Friday

    Friends are not the people you meet at the top, they are the people who were with you at the bottom. ...

  8. 3ds max删除了对象后,还是将原来所有对象输出的原因

    原因是场景中除了 几何体 外还有 图形,如下图 将这些图形删除,几何体就都正常输出了.

  9. ios框架

    iPhone OS(现在叫iOS)是iPhone, iPod touch 和 iPad 设备的操作系统.        1,Core OS: 是用FreeBSD和Mach所改写的Darwin, 是开源 ...

  10. 利用CocoaPods,在项目中导入AFNetworking类库

    场景1:利用CocoaPods,在项目中导入AFNetworking类库 AFNetworking类库在GitHub地址是:https://github.com/AFNetworking/AFNetw ...