FreeOZ论坛

标题: C++开发资料汇总 [打印本页]

作者: coredump    时间: 2-4-2009 12:44
标题: C++开发资料汇总
搜集C++方面的开发资料,库,网站,电子书等资源。
作者: coredump    时间: 2-4-2009 12:47
标题: C++ BOOST库资料
最新boost库中文文档可以在这里下载:http://code.google.com/p/boost-doc-zh/, CHM格式。
作者: justinli79    时间: 2-4-2009 12:56
我自己好像从来没有收集积攒过什么资料。就在这里坐享其成吧
帮顶吧!
作者: fred_au    时间: 2-4-2009 20:22
我倒是有不少在硬盘上,绝大部分都没看过。。。
都是从网上下载的,估计全部都没有版权吧,要是有人想要。。。需要想一想怎么给。。。
作者: ritz    时间: 2-4-2009 20:30
The ADAPTIVE Communication Environment ( ACE )
很牛的一个通信框架
作者: fred_au    时间: 2-4-2009 20:48
ACE是个好东西,当年同志们想用它重写Media server,后来发现好像太。。太。。太复杂了。。。后来同志们。。。自己写了一个ACE的简化版。。。
作者: coredump    时间: 2-4-2009 20:55
原帖由 ritz 于 2-4-2009 20:30 发表 The ADAPTIVE Communication Environment ( ACE )很牛的一个通信框架

ACE is a monster.
作者: 大杨树    时间: 3-4-2009 09:46
我在看这个,http://www.cplusplus.com/doc/tutorial/
请教一个问题:
我用malloc分配的内存,用delete释放,结果会怎样呢?
回帖请注明您的编译器版本及平台.
作者: coredump    时间: 3-4-2009 10:57
原帖由 大杨树 于 3-4-2009 09:46 发表
我在看这个,http://www.cplusplus.com/doc/tutorial/
请教一个问题:
我用malloc分配的内存,用delete释放,结果会怎样呢?
回帖请注明您的编译器版本及平台.


1. malloc/free 是c的库函数, 直接对应OS的内存系统调用
2. new/delete 是C++ 算符,可以重载,并兼具调用C++构造和析构函数的作用

如果没有new/delete重载,外加没有构造和析构函数的因素(比如基本类型int,double等),则new/delete和malloc/free应该是等同的,但是不排除编译器有什么自定义的行为。

此外,还需考虑new[], delete[]的不同之处。
作者: 大杨树    时间: 3-4-2009 11:56
原帖由 coredump 于 3-4-2009 11:57 发表


1. malloc/free 是c的库函数, 直接对应OS的内存系统调用
2. new/delete 是C++ 算符,可以重载,并兼具调用C++构造和析构函数的作用

如果没有new/delete重载,外加没有构造和析构函数的因素(比如基本类型int,d ...

谢答复,我指没有重载的,所有函数都是native的,数据类型是基本的.
比如:
char * pchar = (char *)malloc(100);
delete pchar;
您试过哪些编译器?结果如何?
作者: justinli79    时间: 3-4-2009 12:07
我试了一下vc2003, xp,没有报泄漏。
但是我自己觉得应该会有泄漏,delete pchar是删除一个pchar,在释放内存前调用它的destructor,当然destructor of char是什么都没有,应该是然后释放了一个字节的内存。所以应该有99个字节的内存泄漏。
作者: ubuntuhk    时间: 3-4-2009 12:07
标题: 回复 #10 大杨树 的帖子
最好还是不要这样用,要么用new/delete,要么用malloc/free,否则就像coredump解释的,你无法保证free和delete执行同样的动作,可能会发生"coredump"

我一般的习惯是C++就用new/delete,C就用malloc/free。
作者: migao21    时间: 3-4-2009 12:10
原帖由 大杨树 于 3-4-2009 12:56 发表

char * pchar = (char *)malloc(100);
delete pchar;
您试过哪些编译器?结果如何?


编译,运行都没有问题,  g++ 4.x.x (opensuse)
作者: coredump    时间: 3-4-2009 12:48
原帖由 大杨树 于 3-4-2009 11:56 发表

谢答复,我指没有重载的,所有函数都是native的,数据类型是基本的.
比如:
char * pchar = (char *)malloc(100);
delete pchar;
您试过哪些编译器?结果如何?


对这样的基本类型而言,是等效的。除非遇到内存不足情况,malloc返回null, new抛异常
作者: justinli79    时间: 3-4-2009 15:20
我觉得new/delete 和malloc/free的不同,应该是调用构造和析构函数的不同。我觉得对于大杨树的例子,下面的代码更合适一些:
        char *m = (char*)malloc(100);
        delete [] m;
在vs 2003/xp上也正常运行。
作者: coredump    时间: 3-4-2009 17:18
标题: 回复 #15 justinli79 的帖子
只是“不合适”和“更不合适”的区别,而不是更合适
作者: justinli79    时间: 3-4-2009 17:41
原帖由 coredump 于 3-4-2009 15:18 发表
只是“不合适”和“更不合适”的区别,而不是更合适

哈哈,对对!
作者: shark2008    时间: 3-4-2009 22:20
http://www.cryptopp.com/
Crypto++,加密库,要翻墙才行。




欢迎光临 FreeOZ论坛 (https://www.freeoz.org/bbs/) Powered by Discuz! X3.2