2634: E3 继承了,成员函数却不可访问

时间限制: 1 Sec  内存限制: 128 MB

提交: 521  解决: 435

题目描述

下面的程序中,派生类Derive继承自基类Base,main函数中,要通过Derive类的对象d,输出继承自Base及其自身的val数据成员的值。例如,输入的n为100,继承自Base及的val值是10,而自身的val的值为110。很遗憾,下面的程序中,在begin和end之间有两处语法错误,请修改并提交这部分代码。
#include <iostream>
using namespace std;
class Base
{
    private:
    int val;
public:
    Base():val(10){}
    int getV(){return val;}
};
//************* begin *****************
class Derive: Base //(1)
{
private:
    int val;
    int getV(){return val;}  //(2)
public:
    Derive():val(0){}
    void setV(int i)
    {
        val=Base::getV()+i;
    }
};
//************* end *****************
int main()
{
    int n;
    cin>>n;
    Derive d;
    d.setV(n);
    cout<<d.Base::getV()<<" "<<d.getV()<<endl;
    return 0;
}

输入

一个整数n,用于设置d.val的值

输出

两个整数,第一个是通过d对象的基类Base的成员函数getV返回的val值,固定为10,第二个是通过d对象的成员函数getV返回的val值,由函数的定义,为10加上输入的n值

样例输入

100

样例输出

10 110

迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

#include <iostream>
using namespace std;
class Base
{
private:
int val;
public:
Base():val(10) {}
int getV()
{
return val;
}
};
class Derive:public Base //(1)
{
private:
int val; public:
int getV()
{
return val; //(2)
}
Derive():val(0) {}
void setV(int i)
{
val=Base::getV()+i;
}
};
int main()
{
int n;
cin>>n;
Derive d;
d.setV(n);
cout<<d.Base::getV()<<" "<<d.getV()<<endl;
return 0;
}

YTU 2634: E3 继承了,成员函数却不可访问的更多相关文章

  1. C++学习笔记(十二):类继承、虚函数、纯虚函数、抽象类和嵌套类

    类继承 在C++类继承中,一个派生类可以从一个基类派生,也可以从多个基类派生. 从一个基类派生的继承称为单继承:从多个基类派生的继承称为多继承. //单继承的定义 class B:public A { ...

  2. 从汇编看c++成员函数指针(三)

    前面的从汇编看c++中成员函数指针(一)和从汇编看c++成员函数指针(二)讨论的要么是单一类,要么是普通的多重继承,没有讨论虚拟继承,下面就来看一看,当引入虚拟继承之后,成员函数指针会有什么变化. 下 ...

  3. 深入理解类成员函数的调用规则(理解成员函数的内存为什么不会反映在sizeof运算符上、类的静态绑定与动态绑定、虚函数表)

    本文转载自:http://blog.51cto.com/9291927/2148695 总结: 一.成员函数的内存为什么不会反映在sizeof运算符上?             成员函数可以被看作是类 ...

  4. 成员函数指针与高效C++委托 (delegate)

    下载实例源代码 - 18.5 Kb 下载开发包库文件 - 18.6 Kb 概要 很遗憾, C++ 标准中没能提供面向对象的函数指针. 面向对象的函数指针也被称为闭包(closures) 或委托(del ...

  5. C++ 指向类成员函数指针的用法(转自维基百科)

    类成员函数指针 类成员函数指针(member function pointer),是C++语言的一类指针数据类型,用于存储一个指定类具有给定的形参列表与返回值类型的成员函数的访问信息. 目录 1 语法 ...

  6. <转>C++继承中虚函数的使用

      转自:http://blog.csdn.net/itolfn/article/details/7412364 一:继承中的指针问题. 1. 指向基类的指针可以指向派生类对象,当基类指针指向派生类对 ...

  7. C++类的成员函数使用的一些小总结

    From: http://blog.csdn.net/xiayefanxing/article/details/7607506 这一阵做项目代码开发的时候,用到了在一个C++文件中使用另一个类的成员函 ...

  8. C++中的static数据成员与static成员函数

    本文要点: 1.static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联! aka:每个static数据成 ...

  9. 友元(友元函数、友元类和友元成员函数) C++

    有些情况下,允许特定的非成员函数访问一个类的私有成员,同时仍阻止一般的访问,这是很方便做到的.例如被重载的操作符,如输入或输出操作符,经常需要访问类的私有数据成员. 友元(frend)机制允许一个类将 ...

随机推荐

  1. Java中Arrays作用

    Arrays类是提供对数组进行排序.查询和修改等操作方法的工具类.(Arrays:尽可进行数组升序排序) 格式:Arrays.sort(数组名); Package Java; import java. ...

  2. 笔试算法题(12):整数的string到int转换 & 两个栈实现队列

    出题:将输入的表示整数的字符串转变为对应的整数值: 分析: 每当右边增加一位,说明之前的sum应该高一个数量级,所以*10.由于这两个实现仅仅考虑正规的.正整数输入,所以需要一个Wrapper函数,其 ...

  3. MySql索引笔记

    MySQL 索引是什么 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和 ...

  4. galera cluster安装与配置

    由于公司数据量与并发的日渐增大,普通的主从复制已无法满足要求.对比了网上PXC.galera.mysql cluster等方案,最终决定选择galera cluster. 以下为安装步骤: 1.下载g ...

  5. Excel OLE控制

    来源:http://blog.csdn.net/chelen_jak/article/details/7069095 Delphi  控制Excel(一) 使用动态创建的方法 首先创建 Excel 对 ...

  6. Python之粘包

    Python之粘包 让我们基于tcp先制作一个远程执行命令的程序(1:执行错误命令 2:执行ls 3:执行ifconfig) 注意注意注意: res=subprocess.Popen(cmd.deco ...

  7. A - 栈

    Description   You are given a string consisting of parentheses () and []. A string of this type is s ...

  8. UVa 548 树(已知其中两种遍历, 还原树)

    题意: 给出后序遍历和先序遍历, 还原一棵树, 然后求出从根节点到叶子的最小路劲和. 分析: 已知后序遍历, 那么后序的最后一个节点就是根节点, 然后在中序中找到这个节点, 它的左边就是左子树, 它的 ...

  9. 笔记——python风格规范

    分号 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 每行不超过80个字符 例外: 长的导入模块语句 注释里的URL 不要使用反斜杠连接行. Python会将 圆括号, 中括号和花括号 ...

  10. Linux清除arp缓存

    arp缓存就是IP地址和MAC地址关系缓存列表.在Windows下 arp -d [$ip] 不指定IP地址时清除所有arp缓存.在Linux下 arp -d $ip 必须指定IP地址才能执行这条命令 ...