『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级联下拉列表,觉得不错,特地拿下来 :转载来自:『大雪无痕』 ,原文地址 //当一个 下拉列表 改变时,触发所有联动:(警告:各下拉列表之间 请不要出现 循环依赖) // ...
随机推荐
- React Native之React速学教程(下)
概述 本篇为<React Native之React速学教程>的最后一篇.本篇将带着大家一起认识ES6,学习在开发中常用的一些ES6的新特性,以及ES6与ES5的区别,解决大家在学习Reac ...
- 01_java虚拟机基础入门
[Java虚拟机的基本结构] [ 1.类加载子系统 ] 负责从文件系统或者网络中加载Class信息,加载的信息存放在一块称之为方法区的内存空间. [ 2.方法区 ] 存放类信息.常量信息.常量池信息, ...
- C#——DataGridView选中行,在TextBox中显示选中行的内容
C#--DataGridView选中行,在TextBox中显示选中行的内容,在DataGridView的SelectionChanged实践中设置如下代码 private void dataGridV ...
- JAVA的静态方法,静态变量,静态类。
静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象 ...
- Android TabHost切换选项卡实现数据实时刷新
手机界面大小有限,使用TabHost可以达到在一个Activity中放入多个容器(界面)的效果.但存在一个问题是,当数据信息在一个容器(界面)中有所改变时,需要在用户切换选项卡到其他容器(界面)的时候 ...
- Anaconda 执行命令报ssl错误
- python 面向对象 【进阶】
多态 多态跟python没有太大关系,因为python本身原生支持多态. def func(arg): #多态 print (arg) func(1) func(‘pand ...
- AWS的load balance
Route53实现了地理上的load balance; ELB实现了region内的load balance CloudFront实现了静态内容的全网加速 ZULh?*;&T(
- C++数组怎么复制
C++数组怎么复制: #include <string.h>main(){int a[10]={34,56,4,10,77,51,93,30,5,52};int b[10];memcpy( ...
- Android笔记——Socket通信实现简单聊天室
两部分,客户端和服务端 ---------------------------------------------------------------- 客户端 1.为防止ANR异常,互联网连接可用 ...