Visual C++ 2005 系列课程学习笔记-3
2008-09-04 03:27
260 查看
Visual C++ 2005中与C++的对比(内存的开辟、销毁)
Visual C++ 2005:
value class Myclass //值类型
{
private:
m_member;
public:
void method(void);
}
{
Myclass classObject; //在栈中为新建的对象实例classObject开辟一块内存
Myclass^ classPtr = gcnew Myclass(); //在托管堆中为classPtr所指的对象实例开辟一块内存
classPtr = &classObject; //利用&将classObject对象的地址赋给classPtr
delete classPtr; //调用析构函数来释放非托管资源
} //遇到封闭的大括号时会自动调用析构函数来释放确定性资源并销毁为classObject开辟的内存
// 托管堆中classPtr所指对象的内存会由垃圾回收器自动处理
ref class Myclass //引用类型
{
private:
m_member;
public:
void method(void);
}
{
Myclass classObject; //在托管堆中为新建的对象实例classObject开辟一块内存
Myclass^ classPtr = gcnew Myclass(); //在托管堆中为classPtr所指的对象实例开辟一块内存
classPtr = %classObject; //利用%将classObject对象的地址赋给classPtr
delete classPtr; //调用析构函数来释放非托管资源
} //遇到封闭的大括号时会自动调用析构函数来释放确定性资源
//托管堆中classObject所占内存、classPtr所指对象的内存会由垃圾回收器自动处理
C++:
class Myclass //标准的C++本地类
{
private:
m_member;
public:
void method(void);
}
{
Myclass classObject; //在栈中为新建的对象实例classObject开辟一块内存
} //遇到大括号时会自动调用析构函数来释放确定性资源//并销毁为classObject开辟的内存
Myclass* classPtr = new Myclass(); //在本地堆中为classPtr所指的对象实例开辟一块内存
classPtr = &classObject; //利用&将classObject对象的地址赋给classPtr
delete classPtr; //调用析构函数来释放资源并销毁为classPtr所指的对象实例开辟的内存
Visual C++ 2005:
value class Myclass //值类型
{
private:
m_member;
public:
void method(void);
}
{
Myclass classObject; //在栈中为新建的对象实例classObject开辟一块内存
Myclass^ classPtr = gcnew Myclass(); //在托管堆中为classPtr所指的对象实例开辟一块内存
classPtr = &classObject; //利用&将classObject对象的地址赋给classPtr
delete classPtr; //调用析构函数来释放非托管资源
} //遇到封闭的大括号时会自动调用析构函数来释放确定性资源并销毁为classObject开辟的内存
// 托管堆中classPtr所指对象的内存会由垃圾回收器自动处理
ref class Myclass //引用类型
{
private:
m_member;
public:
void method(void);
}
{
Myclass classObject; //在托管堆中为新建的对象实例classObject开辟一块内存
Myclass^ classPtr = gcnew Myclass(); //在托管堆中为classPtr所指的对象实例开辟一块内存
classPtr = %classObject; //利用%将classObject对象的地址赋给classPtr
delete classPtr; //调用析构函数来释放非托管资源
} //遇到封闭的大括号时会自动调用析构函数来释放确定性资源
//托管堆中classObject所占内存、classPtr所指对象的内存会由垃圾回收器自动处理
C++:
class Myclass //标准的C++本地类
{
private:
m_member;
public:
void method(void);
}
{
Myclass classObject; //在栈中为新建的对象实例classObject开辟一块内存
} //遇到大括号时会自动调用析构函数来释放确定性资源//并销毁为classObject开辟的内存
Myclass* classPtr = new Myclass(); //在本地堆中为classPtr所指的对象实例开辟一块内存
classPtr = &classObject; //利用&将classObject对象的地址赋给classPtr
delete classPtr; //调用析构函数来释放资源并销毁为classPtr所指的对象实例开辟的内存
相关文章推荐
- Visual C++ 2005 系列课程学习笔记-8
- Visual C++ 2005 系列课程学习笔记-9
- Visual C++ 2005 系列课程学习笔记-1
- Visual C++ 2005 系列课程学习笔记-2
- Visual C++ 2005 系列课程学习笔记-4
- Visual C++ 2005 系列课程学习笔记-6
- Visual C++ 2005 系列课程学习笔记-5
- Visual C++ 2005 系列课程学习笔记-7
- sql server 2005下载|学习|教程|笔记系列文章
- Andrew NG机器学习课程笔记系列之——机器学习之神经网络模型-下(Neural Networks: Representation)
- NodeJS学习系列课程笔记(NodeJs 快速上手+用法示例)
- NodeJS学习系列课程笔记(NodeJs REPL相关使用方法)
- AI角 | 把吴恩达深度学习系列课程画出来,这有份诚意满满的笔记求查收
- 【学习】构建WCF面向服务的应用程序系列课程笔记:(1) WCF概要
- SQL Server 2005盛宴系列之一:SQL Server 2005产品简介-----学习笔记
- 1自定义View系列课程学习笔记——之手势处理
- SQL Server 2005 学习笔记系列文章导航
- NodeJS学习系列课程笔记(NodeJs Stream 的相关使用方法)
- NodeJS学习系列课程笔记(NodeJs EventEmitter相关使用方法)
- 3自定义View系列课程学习笔记——之Measure测量