zoukankan      html  css  js  c++  java
  • [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

  • 相关阅读:
    js原型杂谈
    arguments.callee.caller
    $resource
    sql的四种匹配模式
    AMD规范
    module.ngdoc
    angularjs杂谈
    浏览器前缀
    css21规范学习
    <meta>标签
  • 原文地址:https://www.cnblogs.com/hermit/p/3600481.html
Copyright © 2011-2022 走看看