资源简介
C++内存管理课件和代码侯捷老师的ppt,C++内存管理课件和代码侯捷老师C++内存管理课件和代码侯捷老师
代码片段和文件信息
// author : Hou Jie (侯捷)
// date : 2015/11/11
// compiler : DevC++ 5.61 (MinGW with GNU 4.9.2)
//
// 說明:這是侯捷 E-learning video “C++內存管理“ 的實例程式.
// 該課程的所有測試都出現在此.
// 每一個小測試單元都被放進一個 namespace 中
// 如此保持各單元間最大的獨立性.
// 每個 namespace 上方皆有該單元相應的 #include <...>
// 因此有可能整個程式重複含入 (included) 某些 headers
// 這無所謂,因為每個 standard headers 都有自我防衛機制,不讓自己被 included 二次.
//
// 本文件用到若干 GNU C++ extended allocators,所以你或許需要在你的集成環境 (IDE) 上設定 “C++11 on“.
// 我已將相關代碼包裝在 編譯條件選項 __GNUC__ 中。
/*
#include
#include
#include
#include //strlen()
#include
#include
*/
using namespace std;
//----------------------------------------------------
#include
#include
#include //std::allocator
#include //欲使用 std::allocator 以外的 allocator 就得自行 #include
namespace jj01
{
void test_primitives()
{
cout << “\ntest_primitives().......... \n“;
void* p1 = malloc(512); //512 bytes
free(p1);
complex* p2 = new complex; //one object
delete p2;
void* p3 = ::operator new(512); //512 bytes
::operator delete(p3);
//以下使用 C++ 標準庫提供的 allocators。
//其接口雖有標準規格,但實現廠商並未完全遵守;下面三者形式略異。
#ifdef _MSC_VER
//以下兩函數都是 non-static,定要通過 object 調用。以下分配 3 個 ints.
int* p4 = allocator().allocate(3 (int*)0);
allocator().deallocate(p43);
#endif
#ifdef __BORLANDC__
//以下兩函數都是 non-static,定要通過 object 調用。以下分配 5 個 ints.
int* p4 = allocator().allocate(5);
allocator().deallocate(p45);
#endif
#ifdef __GNUC__
//以下兩函數都是 static,可通過全名調用之。以下分配 512 bytes.
//void* p4 = alloc::allocate(512);
//alloc::deallocate(p4512);
//以下兩函數都是 non-static,定要通過 object 調用。以下分配 7 個 ints.
void* p4 = allocator().allocate(7);
allocator().deallocate((int*)p47);
//以下兩函數都是 non-static,定要通過 object 調用。以下分配 9 個 ints.
void* p5 = __gnu_cxx::__pool_alloc().allocate(9);
__gnu_cxx::__pool_alloc().deallocate((int*)p59);
#endif
}
} //namespace
//----------------------------------------------------
#include
#include
//#include //std::allocator
namespace jj02
{
class A
{
public:
int id;
A() : id(0) { cout << “default ctor. this=“ << this << “ id=“ << id << endl; }
A(int i) : id(i) { cout << “ctor. this=“ << this << “ id=“ << id << endl; }
~A() { cout << “dtor. this=“ << this << “ id=“ << id << endl; }
};
void test_call_ctor_directly()
{
cout << “\ntest_call_ctor_directly().......... \n“;
string* pstr = new string;
cout << “str= “ << *pstr << endl;
//! pstr->string::string(“jjhou“);
//[Error] ‘class std::basic_string‘ has no member named ‘string‘
//! pstr->~string(); //crash -- 其語法語意都是正確的 crash 只因為上一行被 remark 起來嘛.
cout << “str=
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 96268 2015-11-17 19:23 C++内存管理课件和代码侯捷老师\C++內存管理示例.cpp
文件 1647346 2015-11-17 19:23 C++内存管理课件和代码侯捷老师\C++內存管理示例.exe
文件 184322 2015-12-23 17:20 C++内存管理课件和代码侯捷老师\C++内存管理简介-侯捷.pdf
文件 15850 2015-11-17 19:23 C++内存管理课件和代码侯捷老师\allocc.h
文件 36386090 2015-12-23 15:45 C++内存管理课件和代码侯捷老师\内存管理.pdf
文件 7959780 2015-12-23 17:40 C++内存管理课件和代码侯捷老师\内存管理第五讲.pdf
文件 0 2018-05-25 16:20 C++内存管理课件和代码侯捷老师\感谢大家下载.txt
目录 0 2018-05-25 16:20 C++内存管理课件和代码侯捷老师\
相关资源
- 标准C++STL源码剖析(侯捷著)(非扫
- More Effective C++ 侯捷翻译 高清带书签
- Essential C++ 中文版+英文版 侯捷译.ra
- essential c++ 中文版 侯捷 PDF
- 侯捷课程之《C++中的内存管理》讲义
- C++ Templates(侯捷).zip
- C++Templates 侯捷 带书签 pdf
- C++Templates 侯捷简体中文版 - 带书签目
- C++ Primer 第三版 Answer Book 題解
- STL源码剖析(完整版)和stl_sgi源码
- 深入浅出mfc侯捷 简体中文版
- 深入浅出MFC第二版+源码
- 侯捷老师:C++内存管理课件(PDF高清
- C++内存管理课件——侯捷老师
- 侯捷翻译的经典IT中文书籍大全
- C++标准程序库 侯捷版
- 《深入探索C++对象模型》中文pdf 侯捷
- Effective C++第三版中文版高清版侯捷
- 侯捷C++ 课件源码.rar
- 侯捷C++系列课程课件及
- 侯捷C++全套课程视频资源
- Cygnus C++ 2.91.57中所有的头文件侯捷,
- 侯捷 C++内存管理
- 博览网 4视频 侯捷老师的C++内存管理
- Exceptional C++(中文版).侯捷-侯老师的
- Effective C++简体中文 完整书签
- C++ 标准库第2版 作者: Nicolai M. Josu
- C++面向对象高级编程代码资源侯捷
评论
共有 条评论