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;
}
C和C++语言&的更多相关文章
- C语言 · 高精度加法
问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...
- Windows server 2012 添加中文语言包(英文转为中文)(离线)
Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...
- iOS开发系列--Swift语言
概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...
- C语言 · Anagrams问题
问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,"Unclear"和"Nuclear ...
- C语言 · 字符转对比
问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相 ...
- JAVA语言中的修饰符
JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...
- Atitit 项目语言的选择 java c#.net php??
Atitit 项目语言的选择 java c#.net php?? 1.1. 编程语言与技术,应该使用开放式的目前流行的语言趋势1 1.2. 从个人职业生涯考虑,java优先1 1.3. 从项目实际来 ...
- 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...
- InstallShield 脚本语言学习笔记
InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加. 一.基本语法规则 ...
- 用C语言封装OC对象(耐心阅读,非常重要)
用C语言封装OC对象(耐心阅读,非常重要) 本文的主要内容来自这里 前言 做iOS开发的朋友,对OC肯定非常了解,那么大家有没有想过OC中NSInteger,NSObject,NSString这些对象 ...
随机推荐
- android与服务器交互总结(json,post,xUtils,Volley)
http://www.23code.com/tu-biao-chart/ 从无到有,从来没有接触过Json,以及与服务器的交互.然后慢慢的熟悉,了解了一点.把我学到的东西简单的做个总结,也做个记录,万 ...
- poj 2528(区间改动+离散化)
题意:有一个黑板上贴海报.给出每一个海报在黑板上的覆盖区间为l r,问最后多少个海报是可见的. 题解:由于l r取值到1e7,肯定是要离散化的,但普通的离散化会出问题.比方[1,10],[1,4],[ ...
- C 标准库 - <setjmp.h>
C 标准库 - <setjmp.h> 简介 setjmp.h 头文件定义了宏 setjmp().函数 longjmp() 和变量类型 jmp_buf,该变量类型会绕过正常的函数调用和返回规 ...
- 合并SO为单独交货单
本场景为单步交货 为客户建立专用的route. 增加一个pull rule 在做订单的时候,为订单行选择 上面建立好的route, 连续建立了 2个 订单 SO ...
- Spring的Scheme位置
org.springframework.aop.config org.springframework.contex.config org.springframework.ejb.config org. ...
- http协议的Last-Modified
$modified_time = $_SERVER['HTTP_IF_MODIFIED_SINCE']; if (strtotime($modified_time) + 3600 > time( ...
- mini2440使用jlink烧写superboot到norflash
Jlink版本号:J-flash ARM V4.12 J-Flash ARM的配置. 一般说来file-->open project里面会找到一些*.jfl ...
- 在命令行下运行Matlab
2014-04-20 22:08:11 在命令行下执行: matlab -help 可以得到帮助文件: Usage: matlab [-h|-help] | [-n | -e] [-arch | v= ...
- React Native 学习(三)之 FlexBox 布局
React Native 学习(三)之 FlexBox 布局
- EasyDarwin开源流媒体社区视频教程
EasyDarwin开源社区出视频教程了,经过几个深夜的努力,终于将第一次课程的5个课时的视频教程录好<EasyDarwin开源流媒体服务器:编译.配置.部署>,EasyDarwin后面会 ...