| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 708 人关注过本帖
标题:关于基类和类的继承
只看楼主 加入收藏
不过如此
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-12-5
收藏
 问题点数:0 回复次数:3 
关于基类和类的继承

1. 定义一个基类MyArray,基类中可以存放一组数组。

class Myarray

{ int *alist;

int length;

public:

Myarray( int leng);

~myarray();

void input();

void display();

};

编写构造函数,析构函数及其它函数,实现动态分配内存,释放内存和数据输入输出等功能。并进行调试。

2.定义一个类AverArray继承自MyArray,在类中求数组的平均值,并输出。进行调试。

3.定义一个类RevArray继承自 MyArray, 使数组按反序存放,并输出。进行调试。

4. 定义一个类NawArray继承自AverArrayRevArray。在继承过程中声明为虚基类,体会虚基类在解决二义性中的问题中的作用。调试中可以试一试不用虚基类出现的问题。

搜索更多相关主题的帖子: 基类 继承 
2006-03-15 20:28
不过如此
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-12-5
收藏
得分:0 
大家帮忙啊
2006-03-15 21:02
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 

//Myarray类的声明文件MyArray.h
class Myarray

{
public:
int *alist;

int length;

Myarray( int leng);

~Myarray();

void input();

void display();

};

//Myarray类的实现文件MyArray.cpp
#include<iostream.h>
#include "MyArray.h"

Myarray::Myarray(int leng)
{
alist=new int[leng];
length=leng;
}

Myarray::~Myarray()
{
delete [] alist;
}

void Myarray::input()
{
for(int i=0;i<length;i++)
cin>>alist[i];
}

void Myarray::display()
{
for(int i = 0;i < length;i++)
cout<<alist[i]<<" ";
}

//AverArray类的声明文件AverArray.h
#ifndef MYARRAY
#define MYARRAR 0
#include "MyArray.h"
#endif

class AverArray:virtual public Myarray{

public:
AverArray(int leng);

float aver();
};

//AverArray类的实现文件AverArray.cpp
#include "AverArray.h"
#include<iostream.h>

AverArray::AverArray(int leng):Myarray(leng)
{

}

float AverArray::aver()
{
int s=0;

for(int i=0;i<length;i++)
s=s+alist[i];

return (float (s)/length);
}

//RevArray类的声明文件RevArray.h
#ifndef MYARRAY
#define MYARRAY 0
#include "MyArray.h"
#endif

class RevArray:virtual public Myarray{
public:
RevArray(int leng);
void ob_array();
};

//RevArray类的实现文件RevArray.cpp
#include <iostream.h>
#include "RevArray.h"

RevArray::RevArray(int leng):Myarray(leng){}

void RevArray::ob_array()
{
for(int i=length-1;i>=0;i--)
cout<<alist[i]<<" ";
}

//NawArray类的声明及实现NawArray.h
#ifndef AVERARRAY
#define AVERARRAY 0
#include "AverArray.h"
#endif

#ifndef REVARRAY
#define REVARRAY 0
#include "RevArray.h"
#endif

class NawArray:public AverArray,public RevArray
{
public:
NawArray(int leng):Myarray(leng),AverArray(leng),RevArray(leng){}
};

//主文件Array.cpp
#include<iostream.h>

#ifndef MYARRAY
#define MYARRAY 0
#include "MyArray.h"
#endif

#ifndef AVERARRAY
#define AVERARRAY 0
#include "AverArray.h"
#endif

#ifndef REVARRAY
#define REVARRAY 0
#include "RevArray.h"
#endif

#include "NawArray.h"

const int n=5;

int main()
{ //operate class Myarray
Myarray array1(n);

cout<<"input array1:";
array1.input();

cout<<"array1:";
array1.display();

cout<<endl;

//operate class AverArray
AverArray array2(n);
cout<<"input array2:";
array2.input();

cout<<"array2:";
array2.display();

cout<<endl<<"array2 aver=";
cout<<array2.aver();

cout<<endl;

//operate class RevArray
RevArray array3(n);

cout<<"input array3:";
array3.input();

cout<<"array3:";
array3.display();

cout<<endl<<"opsition array3:";
array3.ob_array();

cout<<endl;

//operate class NawArray
NawArray array4(n);

cout<<"input array4:";
array4.input();

cout<<"array4:";
array4.display();

cout<<endl<<"opsition array4:";
array4.ob_array();

cout<<endl<<"array4 aver=";
cout<<array4.aver();
cout<<endl;

return 0;
}

[此贴子已经被作者于2006-3-16 22:23:54编辑过]


天行健,君子以自强不息!!QQ:68660681
2006-03-16 22:21
不过如此
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-12-5
收藏
得分:0 
非常感谢你
不错
只是有一点小小的问题
谢谢你让我学到了很多
2006-03-22 14:42
快速回复:关于基类和类的继承
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021947 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved