[C++基础]关于对象的创建及内存分配
测试:
#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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步