C++继承(4) - 给子类的成员函数赋予多个限定条件
来源:互联网 发布:淘宝客领取优惠券 编辑:程序博客网 时间:2024/05/17 13:13
与Java不同,C++允许给子类的成员函数赋予多个限定条件。
下面程序可以正常编译。
#include<iostream>class Base {public: virtual int fun(int i) { std::cout<<"Base: "<<i<<std::endl; }};class Derived: public Base {private: int fun(int x) { std::cout<<"Derived: "<<x<<std::endl; }};int main(){}
基于上述程序,如果修改main函数如下,则会编译失败,因为fun()是私有函数,Derived对象无权访问。
int main(){ Derived d; d.fun(1); //编译失败。无法访问私有函数 return 0;}
#include<iostream>class Base {public: virtual int fun(int i) { std::cout<<"Base::fun(int) "<<i<<std::endl; }};class Derived: public Base {private: int fun(int x) { std::cout<<"Derived::fun(int) "<<x<<std::endl; }};int main(){ Base *pb = new Derived; pb->fun(123); return 0;}输出:
Derived::fun(int) 123
上述程序中,函数 “Derived::fun(int )”通过一个基类指针进行了调用。程序可以正常运行,这是因为fun()是基类的一个公有函数。Base类的对象可以访问。
访问权限是在编译期间检测的。而在运行时期间,只管去调用指针所指向对象的相关的函数,而不会去检查访问权限。因此,通过一个基类指针,可以访问子类的private私有函数。
0 0
- C++继承(4) - 给子类的成员函数赋予多个限定条件
- 【继承与多态】C++:继承中的赋值兼容规则,子类的成员函数,虚函数(重写),多态
- 【继承与多态】C++:继承中的赋值兼容规则,子类的成员函数,虚函数(重写),多态
- C++继承时子类定义同名成员变量时的调用继承函数的问题
- C++继承时子类定义同名成员变量时的调用继承函数的问题
- C++继承时子类定义同名成员变量时的调用继承函数的问题
- Java编程中,子类可以用用这种方法给继承父类的成员变量赋值么?
- 子类继承父类的私有成员
- 用 const 限定类的成员函数
- 用 const 限定类的成员函数
- 用const 限定类的成员函数
- const限定类的成员函数
- 用 const 限定类的成员函数
- 常量成员函数限定的是什么?
- 用 const 限定类的成员函数
- 用 const 限定类的成员函数
- 用 const 限定类的成员函数
- 用 const 限定类的成员函数
- Flash,EEPROM和SRAM的区别
- No buffer space available
- 将Stanford CoreNLP的解析结果构造为json格式
- java Tips 之 long
- 非常详细的php.ini 配置文件
- C++继承(4) - 给子类的成员函数赋予多个限定条件
- Android中@id与@+id区别(转自百度文库)
- 《C++高级编程(第3版)》
- C语言嵌套结构体示例
- 关于死锁,并用Java实现一个死锁
- android 自定义圆角头像以及使用declare-styleable进行配置属性解析
- Python学习-windows安装Python以及matplotlib.pyplot包
- linux下http多线程下载案例
- 浅谈CSRF攻击方式