关于析构函数与内存
来源:互联网 发布:淘宝快递打印软件 编辑:程序博客网 时间:2024/05/29 13:53
#include "stdafx.h"
#include "iostream"
using namespace std;
class A{
private:
int a;
public:
A(int b = 10):a(b){cout<<"struct"<<endl;}
~A(){cout<<"destruct"<<endl;}
void start() {
cout<<a<<endl;
}
void set(int n) {
a = n;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
A* b;
{
A a(2);
b = &a;
b->start();
return 0;
#include "iostream"
using namespace std;
class A{
private:
int a;
public:
A(int b = 10):a(b){cout<<"struct"<<endl;}
~A(){cout<<"destruct"<<endl;}
void start() {
cout<<a<<endl;
}
void set(int n) {
a = n;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
A* b;
{
A a(2);
b = &a;
b->start();
}
//此时a已经被析构了。
b->set(3);b->start(); //这里a已经被析构了,为什么这里不报错呢!?
//析构的时候,为了效率,并不会将内存清0。这样的话。对象的空间仍在那里放着,只是别人现在能够用了。\
如果内部没有得破坏,指针依然指向那么空间,所以可以继续操作。所以指针用完后要置NULL,否则仍然指向那片空间。\
如果空间被别的程序占用了,但是这个指针仍然指向他。如果这个指针被误操作使用了这片内存,就会破坏别的程序的结构了。
return 0;
- 关于析构函数与内存
- 析构函数与内存释放
- 关于在析构函数中释放内存
- 关于C++构造与析构函数
- 关于构造函数与析构函数几点Tips
- 关于链表类的拷贝构造函数与析构函数
- 关于Object-c 中的构造函数与析构函数
- 虚拟析构函数 与释放内存是独立的
- 关于构造函数析构函数以及成员变量内存分配顺序的一些问题
- 函数与内存堆栈
- 函数与内存堆栈
- 关于函数内存块大小
- 构造函数与析构函数的顺序及动态内存的申请
- C++ allocators将构造函数,析构函数与分配内存解耦
- 关于构造函数,拷贝构造函数与析构函数的自动调用的问题分析
- 关于基类与派生类的析构函数
- 关于virtual与非virtual析构函数的区别
- 关于多态里父类的析构函数造成子类内存泄露的问题
- 语言编程需要注意的64位和32机器的区别
- python的gui编程 最佳组合工具pyqt最新版+eric最新版
- Windows快捷键大全
- POJ1007 DNA Sorting (求逆序数)
- IOS学习笔记38——NSJSONSerialization使用
- 关于析构函数与内存
- printf 格式化输出
- IIS Win7 问题汇总
- 向MySql 5.6中插入UTC时间时错误1292的解决
- Introducing Swift(Swift介绍及其API)
- with admin option & with grant option
- mysql 添加索引
- rpm
- ios检测设备摄像头、指南针、录音、陀螺仪的状态