『C++』Temp_2018_12_26
#include <iostream>
#include <string>
#include <array>
using namespace std; class Object{
public:
virtual void ToString(){
cout<<"Object"<<endl;
} public:
virtual int GetPtrLength(){
return sizeof(this);
}
}; class Test : public Object{
public:
void ToString(){
cout<<"Test"<<endl;
}
}; class Ptr{
public:
char Bytes[];
}; class Int32{
public:
int m_Value;
public:
int GetPtrLength(){
return sizeof(Int32);
}
}; template <class T>
class List{
public:
List() { m_Count=; m_Array = new char*[]; }
~List(){ if(m_Array!=NULL) { delete[] m_Array; cout<< "释放数组指针"<<endl; }
} private:
int m_Count;
char** m_Array; public:
void Add(T* item){
((Object**)m_Array)[m_Count]=(Object*)item;
m_Count++;
}
Object* operator[](int i)
{
if(i >= m_Count)
throw "索引超过最大值";
return ((Object**)m_Array)[i];
} }; int main(){
try{
////初始化一个 指针数组
//Object** aaaa =NULL;
//aaaa = new Object*[1000];
//aaaa[0]=new Object(); //cout<< sizeof(Ptr)<<endl;
//cout<<*(new int(1000000))<<endl; //char bytes[20];
//int* v0 = (bytes[0]);
//bytes[0] = *(new int(1000000));
//bytes[4] = *(new int(2000000));
//for(int i=0;i<20;i++)
// cout<< bytes[i];
//cout<<endl; //cin.get();
//return 0; List<Object> list;
list.Add(new Object());
list.Add(new Test());
auto ptr = list[];
ptr->ToString(); //Test
//delete list; List<int> list2;
list2.Add(new int());
list2.Add(new int());
auto ptr2 = list2[];
ptr2->ToString(); //崩溃 }catch(char* str){
cout<< str << endl;
}catch(...){
cout<<"未知异常"<<endl;
} cin.get();
return ;
}
执行结果
Test
程序崩溃
『C++』Temp_2018_12_26的更多相关文章
- 『AngularJS』$location 服务
项目中关于 $location的用法 简介 $location服务解析在浏览器地址栏中的URL(基于window.location)并且让URL在你的应用中可用.改变在地址栏中的URL会作用到$loc ...
- [原创] 【2014.12.02更新网盘链接】基于EasySysprep4.1的 Windows 7 x86/x64 『视频』封装
[原创] [2014.12.02更新网盘链接]基于EasySysprep4.1的 Windows 7 x86/x64 『视频』封装 joinlidong 发表于 2014-11-29 14:25:50 ...
- JS 中通过对象关联实现『继承』
JS 中继承其实是种委托,而不是传统面向对象中的复制父类到子类,只是通过原型链将要做的事委托给父类. 下面介绍通过对象关联来实现『继承』的方法: Foo = { // 需要提供一个 init 方法来初 ...
- 『摄影欣赏』16幅 Romantic 风格照片欣赏【组图】
今天,我们将继续分享人类情感的系列文章.爱是人类最重要的感觉,也可能是各种形式的艺术(电影,音乐,书,画等)最常表达的主题 .这里有40个最美丽的爱的照片,将激励和给你一个全新的视觉角度为这种情绪.我 ...
- 『开源』Slithice 2013 服务器集群 设计和源码
相关介绍文章: <『设计』Slithice 分布式架构设计-支持一体式开发,分布式发布> <『集群』001 Slithice 服务器集群 概述> <『集群』002 Sli ...
- 『片段』OracleHelper (支持 多条SQL语句)
C# 调用 Oracle 是如此尴尬 >System.Data.OracleClient.dll —— .Net 自带的 已经 过时作废. >要链接 Oracle 服务器,必须在 本机安装 ...
- 『设计』Laura.Compute 设计思路
前言: 前一篇文章 <『开源』也顺手写一个 科学计算器:重磅开源> ,继 Laura.Compute 算法开源之后,有 博客园 园友 希望公开一下 Laura.Compute算法 的 设计 ...
- 『设计』Slithice 分布式架构设计-支持一体式开发,分布式发布
项目原因: 参与过各种 分布式项目,有 Socket,Remoting,WCF,当然还有最常用的可以跨平台的 WebService. 分布式编码的时间浪费: 但是,无一例外的,开发分布式程序的开发遵循 ...
- 转:『代码』JS封装 Ajax级联下拉列表
在博客园看到一篇不错的AJAX级联下拉列表,觉得不错,特地拿下来 :转载来自:『大雪无痕』 ,原文地址 //当一个 下拉列表 改变时,触发所有联动:(警告:各下拉列表之间 请不要出现 循环依赖) // ...
随机推荐
- html高度塌陷问题解决
高度塌陷的问题: 当开启元素的BFC以后,元素将会有如下的特性 1 父元素的垂直外边距不会和子元素重叠 开启BFC的元素不会被浮动元素所覆盖 开启BFC的元素可以包含浮动的子元素 如何开启 ...
- electron之20190320
一.sudo npm i electron -g一直失败 最终解决办法:使用了sudo cnpm i electron -g安装成功 原因不详 二.打包问题 1.使用electron-packager ...
- 关于tr:hover变色的问题
最近在给table里面的tr标签添加高亮背景色显示的时候,遇到一个坑,HTML结构如下: <tr> <td></td> <td></td> ...
- Apache服务器运维笔记(6)----目录 文件 网络容器的安全问题
<Directory>.<Files>.<Location> 这三个容器的作用都很相似,都是以容器的形式来封装一组指令对访问进行控制,只是它们的区别在于作用于目录. ...
- Python类型总结
python 中处处是类的实例化 a=1 存储的是数字类型 而b='123'是字符串类型 []:读写方便的一张类型 True判断真假的一组{}键值对形式 class:则是描述静态元素和动态元素的结合体 ...
- Linux Firefox Adobe Flash Player 安装和更新
1.下载 Firefox Adobe Flash Player 使用Linux上的火狐浏览器访问如下的下载网址: https://get.adobe.com/flashplayer/ 选择下载 &qu ...
- 24点-code1
#include <iostream> #include <string> #include <cstdlib> #include <cmath> us ...
- mongodb 3.4 TAR包启动多个实例
1:解压压缩文件 tar .tgz mkdir /home/maxiangqian/ mv mongodb /home/maxiangqian/ 2:加入环境变量 export PATH/bin:$P ...
- Python学习---基础函数的学习
1.1. 基础函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 灌输一个概念:Python中函数就是对象,函数和我们之前的[1,2,3],'abc ...
- python 面向对象:类,作用域
类(Class)和实例(Instance) 定义类是通过class关键字:class Student(object): pass class后面紧接着是类名,即Student接着是(object),表 ...