设计一个基类,派生类(public) (一个工程包含三个文件) 1.含有承载,构造函数,继承 2.

设计一个基类,派生类(public)(一个工程包含三个文件)1.含有承载,构造函数,继承2.运用到虚函数3.从键盘输入信息4.从屏幕输出信息... 设计一个基类,派生类(public)
(一个工程包含三个文件)
1.含有承载,构造函数,继承
2.运用到虚函数
3.从键盘输入信息
4.从屏幕输出信息
展开
 我来答
ring_year
2014-12-05 · TA获得超过1425个赞
知道小有建树答主
回答量:632
采纳率:80%
帮助的人:540万
展开全部

第一个文件

// base.h
#ifndef BASE_H
#define BASE_H
#include <string>
#include <iostream>
class Base
{
private:
std::string m;
public:
Base():m(""){}
Base(std::string v):m(v){}

virtual void printstring() const;
virtual void scanstring();
virtual void havesomefun() const{};
virtual void havesomefun(int) const{};
};
class Derived:public Base
{
private:
std::string n;
public:
Derived(void):Base(""),n(""){};
Derived(std::string a,std::string b=""):Base(a),n(b){}
void printstring() const;
void scanstring();
void havesomefun() const;
void havesomefun(int x) const;
};
#endif

第二个文件

// base.cpp
#include "base.h"

void Base::printstring() const
{
std::cout<<"Base:"<<m<<std::endl;
}
void Base::scanstring()
{
std::cout<<"input your string:";
std::cin>>m;
}
void Derived::printstring() const
{
std::cout<<"Derived:"<<n<<std::endl;
}
void Derived::scanstring()
{
std::cout<<"input your string:";
std::cin>>n;
}
void Derived::havesomefun(int x) const
{
std::cout<<"reload add a x = "<<x<<std::endl;
std::cout<<n<<std::endl;
}
void Derived::havesomefun() const
{
std::cout<<"reload just print n:"<<std::endl;
std::cout<<n<<std::endl;
}

第三个文件

// main.cpp
#include <iostream>
#include "base.h"
using namespace std;
int main()
{
Base a;
a.scanstring();
a.printstring();

Derived b;
b.scanstring();
b.printstring();

// test
Base *c = &b;
c->printstring();
c->havesomefun();
c->havesomefun(1);
system("pause");
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式