C++.构造函数(超出范围)_01
环境:Win7x64、Qt5.3.2 MSVC2010 OpenGL、vs2010
1、ZC:在 构造函数 中,基类访问子类的成员 会报内存错误,如果访问的是 基本类型的话(如int) 可能还不会出错,如果访问的是 类似 QList<Tbase*>类型的成员的话 就会出错。
本类构造函数 访问 本类的成员或者基类的成员的话,不会出错(∵ 也就是这么做的,如初始化成员变量)
猜想:本类访问子类的 成员变量的时候,可能有些成员变量还未分配好空间??(反正这样做就是不可靠...)
2、测试代码:
#include <QDebug>
#include <QMap> MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
} MainWindow::~MainWindow()
{
delete ui;
} class TA; class Tbase
{
public:
Tbase(); public:
int FiBase; public:
QList<Tbase*> FlistBase;
void AddBase(Tbase *_p);
}; class TA :public Tbase
{
public:
TA():Tbase(){} public:
int FiA;
void SetA(int _i) {FiA = _i;} public:
QList<Tbase*> FlistA;
void AddA(Tbase *_p);
}; Tbase::Tbase()
{
((TA*)this)->FiA = ;
((TA*)this)->SetA( ); this->AddBase(this);
((TA*)this)->AddA(this);
} void Tbase::AddBase(Tbase *_p)
{
qDebug() << "Tbase::AddBase(..) - 1";
if (- == FlistBase.indexOf(_p))
{
qDebug() << "Tbase::AddBase(..) - 2";
FlistBase.append(_p);
qDebug() << "Tbase::AddBase(..) - 3";
}
qDebug() << "Tbase::AddBase(..) - 4";
} void TA::AddA(Tbase* _p)
{
qDebug() << "TA::AddA(..) - 1";
if (- == FlistA.indexOf(_p))
{
qDebug() << "TA::AddA(..) - 2";
FlistA.append(_p);
qDebug() << "TA::AddA(..) - 3";
}
qDebug() << "TA::AddA(..) - 4";
} void MainWindow::on_pushButton_clicked()
{
TA a;// = new TA;
qDebug() << a.FiA;
}
3、控制台输出:
Starting E:\ZZ_Qt5\Qt532_vs2010\build-Test2-Desktop_Qt_5_3_MSVC2010_OpenGL_32bit-Release\release\Test2.exe...
Tbase::AddBase(..) - 1
Tbase::AddBase(..) - 2
Tbase::AddBase(..) - 3
Tbase::AddBase(..) - 4
TA::AddA(..) - 1
TA::AddA(..) - 2
程序异常结束。
E:\ZZ_Qt5\Qt532_vs2010\build-Test2-Desktop_Qt_5_3_MSVC2010_OpenGL_32bit-Release\release\Test2.exe crashed
4、
5、
C++.构造函数(超出范围)_01的更多相关文章
- javascript笔记—— 构造函数
出处:http://www.cnblogs.com/RicCC/archive/2008/02/15/JavaScript-Object-Model-Execution-Model.html 数据类型 ...
- C++的构造函数和析构函数
1.构造函数和析构函数为什么没有返回值? 构造函数和析构函数是两个非常特殊的函数:它们没有返回值.这与返回值为void的函数显然不同,后者虽然也不返回任何值,但还可以让它做点别的事情,而构造函数和析构 ...
- BigInteger构造函数解析
1.BigInteger(byte[] val)这个构造函数用于转换一个字节数组包含BigInteger的二进制补码,以二进制表示成一个BigInteger. (用字节数组中值的ASCII码构造Big ...
- C++:复制构造函数在什么时候被调用?
这个问题不是疑问了,查了一下国外网站,总结一下.假设Person是一个类,复制构造函数的调用会在以下几种情况下发生: 1.对象在创建时使用其他的对象初始化 Person p(q); //此时复制构造函 ...
- C#静态构造函数和析构函数片段化认知
一.静态构造函数 一个类可以有静态构造函数,实现如下源代码.静态构造函数有以下特性: 1).静态构造函数不能有修饰符(润饰符) 2).静态构造函数不能有参数 3).不能被调用——在实例化类的时候,静态 ...
- C++ Primer 学习笔记_54_类和数据抽象 --拷贝构造函数、赋值运算符
拷贝控制 --复制构造函数.赋值操作符 引言: 当定义一个新类型时,须要显式或隐式地指定复制.赋值和撤销该类型的对象时会发生什么– 复制构造函数.赋值操作符和析构函数的作用! 复制构造函数: ...
- BZOJ_4476_[Jsoi2015]送礼物_01分数规划+单调队列
BZOJ_4476_[Jsoi2015]送礼物_01分数规划+单调队列 Description JYY和CX的结婚纪念日即将到来,JYY来到萌萌开的礼品店选购纪念礼物. 萌萌的礼品店很神奇,所有出售的 ...
- C++构造函数和析构函数,以及构造函数特殊成员变量和函数的初始化
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- JavaScript中的内置对象-8--1.Array(数组)-Array构造函数; 数组的栈方法; 数组的转换方法; 数组的操作方法; 删除-插入-替换数组项; ECMAScript为数组实例添加的两个位置方法;
JavaScript内置对象-1Array(数组) 学习目标 1.掌握任何创建数组 2.掌握数值元素的读和写 3.掌握数组的length属性 如何创建数组 创建数组的基本方式有两种: 1.使用Arra ...
随机推荐
- jboss的使用和安装
1. 安装 1.1.软件安装 首先要安装JDK(仅仅安装JRE是不行的,因为JSP页面需要编译),最新的正式版是JDK1.4.2.然后把JBoss的压缩包解压到一个目录下,目录名一般是"Jb ...
- 文件IO流
//字节流读写含有中文的文本文件会出现问题,我在实践中居然没有检验出该问题,新人小菜,希望大家能指出: import java.io.FileInputStream; import java.io.F ...
- Deeplearning 两层cnn卷积网络详解
https://blog.csdn.net/u013203733/article/details/79074452 转载地址: https://www.cnblogs.com/sunshineatno ...
- APP端上传图片 - php接口
$base64="iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAbRJREFUSIntlDFPFF ...
- A-作业01
#1 简单作业 1. 系统的日志文件/var/log/secure /var/log/messages /var/log/cron会自动的进行轮询,系统是通过什么实现的? 2. 写出下面特殊符号在定时 ...
- noip模拟【ping】
70:很容易想到的是枚举每一个可能的答案来判断是否可行,取最优即可,贪心选择. 100:满足题目条件的这个距离是满足单调性的.如果x不行,那么大于x的距离都不行,二分答案. 学会运用二分,by ws_ ...
- 轻重搭配|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)
样例输入: 6 1 9 7 3 5 5 样例输出: 4 思路:贪心,选错贪心思路,只能过一小部分数据,正确贪心思路:从前一半遍历,在后一半中找到比当前元素的两倍大的数(因为这里指针不会后移,所以可以采 ...
- Centos 7 官网下载安装mysql server 5.6
Centos 7 官网下载安装 mysql server # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rp ...
- .net Core 2.1 后 Session保存,新页面获取不到值
https://blog.csdn.net/kuui_chiu/article/details/81060051 https://blog.csdn.net/niunan/article/detail ...
- Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection
Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11 19:47:46 CVPR 20 ...