找回密码
 FreeOZ用户注册
查看: 2724|回复: 17
打印 上一主题 下一主题

[论坛技术] C++开发资料汇总

[复制链接]
跳转到指定楼层
1#
发表于 2-4-2009 12:44:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
搜集C++方面的开发资料,库,网站,电子书等资源。
回复  

使用道具 举报

2#
 楼主| 发表于 2-4-2009 12:47:10 | 只看该作者

C++ BOOST库资料

最新boost库中文文档可以在这里下载:http://code.google.com/p/boost-doc-zh/, CHM格式。
回复  

使用道具 举报

3#
发表于 2-4-2009 12:56:51 | 只看该作者
我自己好像从来没有收集积攒过什么资料。就在这里坐享其成吧
帮顶吧!
回复  

使用道具 举报

4#
发表于 2-4-2009 20:22:13 | 只看该作者
我倒是有不少在硬盘上,绝大部分都没看过。。。
都是从网上下载的,估计全部都没有版权吧,要是有人想要。。。需要想一想怎么给。。。
回复  

使用道具 举报

5#
发表于 2-4-2009 20:30:25 | 只看该作者
回复  

使用道具 举报

6#
发表于 2-4-2009 20:48:22 | 只看该作者
ACE是个好东西,当年同志们想用它重写Media server,后来发现好像太。。太。。太复杂了。。。后来同志们。。。自己写了一个ACE的简化版。。。
回复  

使用道具 举报

7#
 楼主| 发表于 2-4-2009 20:55:42 | 只看该作者
回复  

使用道具 举报

8#
发表于 3-4-2009 09:46:28 | 只看该作者
我在看这个,http://www.cplusplus.com/doc/tutorial/
请教一个问题:
我用malloc分配的内存,用delete释放,结果会怎样呢?
回帖请注明您的编译器版本及平台.
回复  

使用道具 举报

9#
 楼主| 发表于 3-4-2009 10:57:44 | 只看该作者
原帖由 大杨树 于 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[]的不同之处。
回复  

使用道具 举报

10#
发表于 3-4-2009 11:56:23 | 只看该作者
原帖由 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;
您试过哪些编译器?结果如何?
回复  

使用道具 举报

11#
发表于 3-4-2009 12:07:26 | 只看该作者
我试了一下vc2003, xp,没有报泄漏。
但是我自己觉得应该会有泄漏,delete pchar是删除一个pchar,在释放内存前调用它的destructor,当然destructor of char是什么都没有,应该是然后释放了一个字节的内存。所以应该有99个字节的内存泄漏。

评分

参与人数 1威望 +1 收起 理由
大杨树 + 1 谢谢分享!我可以肯定没有内存泄漏.

查看全部评分

回复  

使用道具 举报

12#
发表于 3-4-2009 12:07:53 | 只看该作者

回复 #10 大杨树 的帖子

最好还是不要这样用,要么用new/delete,要么用malloc/free,否则就像coredump解释的,你无法保证free和delete执行同样的动作,可能会发生"coredump"

我一般的习惯是C++就用new/delete,C就用malloc/free。

评分

参与人数 1威望 +1 收起 理由
大杨树 + 1 谢谢分享!手册上说结果不可预知.可是我想知 ...

查看全部评分

回复  

使用道具 举报

13#
发表于 3-4-2009 12:10:21 | 只看该作者
原帖由 大杨树 于 3-4-2009 12:56 发表

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


编译,运行都没有问题,  g++ 4.x.x (opensuse)

评分

参与人数 1威望 +1 收起 理由
大杨树 + 1 谢谢分享!您怎么确认运行没有问题?您有检查 ...

查看全部评分

回复  

使用道具 举报

14#
 楼主| 发表于 3-4-2009 12:48:45 | 只看该作者
原帖由 大杨树 于 3-4-2009 11:56 发表

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


对这样的基本类型而言,是等效的。除非遇到内存不足情况,malloc返回null, new抛异常

评分

参与人数 1威望 +1 收起 理由
大杨树 + 1 谢谢分享!我也感觉是等效的,可是不知道怎么 ...

查看全部评分

回复  

使用道具 举报

15#
发表于 3-4-2009 15:20:18 | 只看该作者
我觉得new/delete 和malloc/free的不同,应该是调用构造和析构函数的不同。我觉得对于大杨树的例子,下面的代码更合适一些:
        char *m = (char*)malloc(100);
        delete [] m;
在vs 2003/xp上也正常运行。
回复  

使用道具 举报

16#
 楼主| 发表于 3-4-2009 17:18:05 | 只看该作者

回复 #15 justinli79 的帖子

只是“不合适”和“更不合适”的区别,而不是更合适
回复  

使用道具 举报

17#
发表于 3-4-2009 17:41:27 | 只看该作者
原帖由 coredump 于 3-4-2009 15:18 发表
只是“不合适”和“更不合适”的区别,而不是更合适

哈哈,对对!
回复  

使用道具 举报

18#
发表于 3-4-2009 22:20:46 | 只看该作者
http://www.cryptopp.com/
Crypto++,加密库,要翻墙才行。
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+10, 31-7-2026 10:57 , Processed in 0.026935 second(s), 40 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表