C和C++语言&
#include "stdafx.h"
#include "iostream"
#include "animal.h"
using namespace std;
#include <iostream>
using namespace std;
class Array
{
public:
Array(unsigned int s);
~Array();
//当析构函数不是虚函数时,???
virtual void add(int e);
//基类的成员函数不是虚函数时,派生类调用基类的成员函数
//基类的成员函数是虚函数时,子类调用派生类的成员函数
int get(unsigned int i) const;
protected:
int* a;
unsigned int size, num;
};
class sortedArray:public Array
{
public:
sortedArray(unsigned int s);
~sortedArray();
//基类要定义了虚函数 子类也需要定义虚函数吗?
void add(int e);
private:
};
Array::Array(unsigned int s)
{
size = s;
num = 0;
a = new int[s];
}
Array::~Array()
{
//delete[] a;
}
void Array::add(int e)
{
if (num<size)
{
a[num] = e;
num++;
}
}
int Array::get(unsigned int i) const
{
if (i<size)
{
return a[i];
}
return 0;
}
//子类
sortedArray::sortedArray(unsigned int s) :Array(s)
{
}
sortedArray::~sortedArray()
{
}
void sortedArray::add(int e)
{
if (num >= size)
{
return;
}
int i = 0, j;
if (i < num)
{
if (e < a[i])
{
for (j = num; j > i; j--)
{
a[j] = a[j - 1];
}
a[i] = e;
//break;
}
/*i++;*/
}
if (i == num)
{
a[i] = e;
}
num++;
}
void fun(Array& b)
{
int i;
for (i = 10; i >= 1; i--)
{
b.add(i);
}
for (i = 0; i < 10; i++)
{
cout << b.get(i)<< ",";
}
cout << endl;
}
//析构函数是对象在结束自己的生命周期时,系统自动调用析构函数
//问题1.出现野指针。问题2.sa调用派生类sortArray的add时结果调用的是基类Array的add函数
//问题3.出现了4次析构函数说明结束了4次生命周期
int _tmain()
{
Array a(10);
fun(a);
sortedArray sa(10);
fun(sa);
return 0;
}
最新文章
- 黑马程序员——ARC机制总结和用ARC建立模型
- Python爬虫入门一之综述
- 用介个新的blog咯..
- Unity进阶技巧 - 动态创建UGUI
- 【转】VC的MFC中重绘函数的使用总结(整理)
- 和S5933比较起来,开发PLX9054比较不幸,可能是第一次开发PCI的缘故吧。因为,很多PCI的例子都是对S5933,就连微软出版的《Programming the Microsoft Windows Driver Model》都提供了一个完整的S5933的例子。 在这篇有关DDK的开发论文里。
- 在本地没有安装Oracle的情况下,使用plsql远程连接数据库
- Java虚拟机—Java8内存模型(整理版)
- 使用 Django-debug-toolbar 优化Query 提高代码效率
- SpringMVC(2):Spring MVC入门
- BZOJ1146 [CTSC2008]网络管理Network 树链剖分 主席树 树状数组
- python3 独立环境 virtualenv &; conda
- 搞定&#39;express&#39; 不是内部或外部命令,也不是可运行的程序或批处理文件
- 十八、Spring框架(AOP)
- Dev-FAT-UAT-PRO
- Java数组、集合的三种遍历方式(包懂)
- Windows10右键添加“在此处打开命令窗口";
- 【Git】创建一个空分支
- (二) Mysql 数据类型简介
- Fang Fang---hud5455(字符串处理)