首页 > 编程语言 > 详细

[C++基础]关于对象的创建及内存分配

时间:2014-03-14 16:20:37      阅读:487      评论:0      收藏:0      [点我收藏+]

测试:

#include <stdio.h>
#include <QDebug>

class KPoint
{
public:
KPoint(int x, int y){
nx = x;
ny = y;
}

private:
int nx;
int ny;

};

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

//Method One
KPoint kp(3,4);
qDebug() << &kp;
qDebug() << sizeof(kp);

//Method Two
KPoint *p = new KPoint(3,4);
qDebug() << p;
delete p;
qDebug() << p;
p = NULL;
qDebug() << p;

return a.exec();
}

 

 

输出:

0x3afc28
8
0x66d048
0x66d048
0x0

 

解释:

0x3afc28 为创建一个栈对象的地址

8 该对象大小,我的理解是一个类的大小仅仅取决于变量的大小,但是具体这个类在内存中是如何布局的?这个也不清楚,有机会研究一下

0x66d048 创建的一个堆对象地址

delete p 清空了0x66d048这个地址的数据

p = null 清空了p这个指针0x66d048

[C++基础]关于对象的创建及内存分配,布布扣,bubuko.com

[C++基础]关于对象的创建及内存分配

原文:http://www.cnblogs.com/hermit/p/3600481.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!