
C/C++
风羿wy
微信: ryan_wyn
展开
-
Linux跨GCC版本出现“浮点数例外”的解决办法(FC6以后版本)
在网上找到这段话: 原來FC6以後版本的gcc現在在link的時候會採用--hash-style=gnu這個hash方式, 據信可以提昇動態鍊結50%的效率。然而, 舊的glibc版本並不支援, 所以想要在舊的glibc版本上跑的話, link的時候記得加上 -Wl, --has转载 2011-07-27 18:55:00 · 4453 阅读 · 0 评论 -
C++编译期与运行期
看这样一段代码。 view plain#include using namespace std; class A{ public: virtual void f(){cout"A"}; class B:public A {转载 2011-10-06 14:39:36 · 1616 阅读 · 0 评论 -
C++指针加整数、两个指针相减的问题
说来惭愧,写C++有一段时间了。这个问题从来没有认真考虑过,此次标记于此:考虑如下问题:1 char a[20];2 int *ptr = (int *)a;3 ptr++;第3句ptr++实际为ptr右移一个int空间(即4个字节)的距离,此时ptr指向a[4]。若第3句改为int *p = ptr + 2;则p指向原创 2011-08-27 17:49:53 · 9682 阅读 · 0 评论 -
C++及Windows异常处理(try,catch; __try,__finally; __try, __except)
题目: int* p = 0x00000000; // pointer to NULL puts( "hello "); __try{ puts( "in try "); __try{ puts( "in try ");转载 2011-12-05 09:16:33 · 4889 阅读 · 0 评论 -
并发危险:解决多线程代码中的 11 个常见的问题(C#示例) from MSDN
转自:http://msdn.microsoft.com/zh-cn/magazine/cc817398.aspx并发危险解决多线程代码中的 11 个常见的问题Joe Duffy本文将介绍以下内容:基本并发概念 并发问题和抑制措施 实现安全性的模式 横切概念 本文使用了以下技术: 多线程、.NET Framework转载 2011-12-08 09:59:33 · 2029 阅读 · 0 评论 -
TR1 tuple的用法
tr1里的tuple,相当于stl里面pair的扩展。pair只能放两个元素,而tuple至少可以放10个元素。#includeusing namespace std::tr1;tuple object可以由构造函数生成,也可以通过make_tuple和tie这两个函数生成。//构造函数tuple tii(0, 0);//make_tupletuple转载 2012-01-07 15:51:20 · 3786 阅读 · 0 评论 -
分离线程
讲到分离线程,先得从僵尸进程讲起(抱歉,确实不知道线程是否有僵尸一说)。 关于僵尸进程:一般情况下进程终止的时候,和它相关的系统资源也并不是主动释放的,而是进入一种通常称为“僵尸”(zombie)的状态。它所占有的资源一直被系统保留,直到它的父进程(如果它直接的父进程先于它去世,那么它将被init进程所收养,这个时候init就是它的父进程)显式地调用wait系列函数为其“收尸”。为了让父进转载 2012-05-17 20:43:34 · 1021 阅读 · 1 评论 -
C++中using的作用
1.在当前文件中引入命名空间这是我们最熟悉的用法,例如:using namespace std;2.在子类中使用 using 声明引入基类成员名称(参见C++ primer)在private或者protected继承时,基类成员的访问级别在派生类中更受限:class Base {public:std::size_t size() const { return n;转载 2012-10-17 11:22:37 · 1029 阅读 · 0 评论 -
C++、Java和C#语言在处理“虚拟私有方法”上的差异
运行时动态绑定被调过程的“虚拟方法”(virtual method)机制是实现多态的关键技术。C++、Java和C#(按出生年月排列,上同,下同)作为三种主流的支持对面向对象的程序设计语言,自然都提供了这种动态的方法绑定机制,在这个问题上三兄弟没有谁是含糊的。但当“虚拟”(virtual)和“私有”(private)碰在一起时,这几种语言在处理上却有所不同,本文的故事就是从一段小程序说起的:我转载 2012-10-18 10:47:22 · 884 阅读 · 0 评论 -
Java与C++的区别之构造函数中的多态
我们有个一个类A,在构造函数中调用自己的方法f。现在有一个类B,继承A,并覆盖了方法f。那么构造函数B调用时先执行A的构造函数,此时在A的构造函数中的f是指A::f, 还是B::f呢?在C++中,对于函数调用的多态主要是通过虚表实现,在构造函数完成前,虚表未实现,所以此时不会有多态特性,故调用的仍然是A::f。但是在Java中表现则不是的,会调用到子类的方法,即B::f。在这一转载 2012-10-19 15:47:33 · 931 阅读 · 0 评论 -
从 C++ 到Objective-C
从 C++ 到 Objective-C(1):前言作者: DevBean 日期: 2011 年 03 月 18 日Objective-C 可以算作 Apple 平台上“唯一的”开发语言。很多 Objective-C 的教程往往直接从 Objective-C 开始讲起。转载 2011-10-15 19:57:32 · 5680 阅读 · 2 评论 -
标准C++类std::string的 内存共享和Copy-On-Write技术
1、概念Scott Meyers在《More Effective C++》中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的样子,其实你在干着别的诸如给班上的某位女生写情书之类的事,而一旦你转载 2011-10-02 11:25:43 · 1550 阅读 · 0 评论 -
C/C++中printf和C++中cout的输出格式
一、 Printf 输出格式C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型,其中方括号[]中的项为可选项。各项的意义介绍如下:1.类型类型字符用以表示输出数据的类型,其格式符和意义下表所示:表示输出类型的格式字符 格式字符意义a转载 2011-07-27 19:01:11 · 46828 阅读 · 1 评论 -
模版的特化与偏特化
Partial Template Specialization能够让你在模板(Template)的所有可能的实体中特化出一组子集. 1.模板的特化(template specialization): 例如,定义如下的一个模板: template转载 2011-09-05 21:31:42 · 834 阅读 · 0 评论 -
linux使用读写锁pthread_rwlock_t
使用读写锁配置读写锁的属性之后,即可初始化读写锁。以下函数用于初始化或销毁读写锁、锁定或解除锁定读写锁或尝试锁定读写锁。下表列出了本节中讨论的用来处理读写锁的函数。表 4–9 处理读写锁的例程操作相关函数说明转载 2011-09-07 09:33:33 · 10799 阅读 · 1 评论 -
std::tr1::bind的使用
Visual Studio 2008(SP1)版增加了对扩展库TR1的支持,有关TR1的信息,可以上网搜索Boost、TR1。 TR1中增加了智能指针shared_ptr、函数模板function,以及bind等实用的功能,在我测试bind函数时(有关bind函数,可以上网转载 2011-09-15 19:12:01 · 7100 阅读 · 0 评论 -
std::tr1::shared_ptr、std::tr1::weak_ptr及std::tr1::enable_shared_from_this
在 c++ 98 里面只有一种智能指针,就是 std::auto_ptr,因为具有唯一所有权的特征,所以限制了它的使用范围,比如你无法在容器中使用它。而我们知道 stl 容器是值语义的,如果不能用智能指针管理的话,只有两种办法来使用。一种是类似这样:std::vector转载 2011-09-15 13:56:46 · 2412 阅读 · 1 评论 -
linux下eclipse的安装
Eclipse的安装http://java.sun.com/javace/downloads/index.jsp下载:Jdk-6u17-linux-i586.binhttp://www.eclipse.org/downloads下载:Eclipse-SDK-3.14-linux-gtk.tar.gzhttp://www.eclipse.org/cdt/downloa转载 2011-06-17 13:08:00 · 1235 阅读 · 1 评论 -
运行错误malloc.c:3096
为使用malloc分配空间时报错,错误代码如下:malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) – __builtin_转载 2011-09-22 11:12:52 · 10740 阅读 · 1 评论 -
指向类成员的指针的用处
看了C++ Primer中“指向类成员的指针”一节,虽然觉得用这东西写出来代码挺炫,但不用它同样可以实现相同的功能。于是我没有相处来用“指向类成员的指针”到底有什么好处,或者说在什么地方最好使用之,还是说它就只是一个噱头。baidu了很多帖子,发现很多朋友也都有相同的疑问原创 2011-08-29 15:24:49 · 1639 阅读 · 0 评论 -
不同编译单元内定义的non-local static 对象的初始化顺序
static对象包括global对象,定义于namespace作用域的对象,在class内的对象,在函数内,以及file作用域内被声明为static的对象。local-static 对象指的是定义在函数内部的对象。其他的被称为non-local-static对象。编译单元转载 2011-08-31 14:33:51 · 924 阅读 · 0 评论 -
[C]对数组名取地址与数组名本身的区别
对数组名取地址打印出来的结果与直接打印数组名得到的结果是同一个地址,如:C/C++ code?12345678910#include int main(void){ int a[] = { 1, 2, 3, 4, 5, 6,原创 2012-11-21 21:19:49 · 1573 阅读 · 0 评论