文章分类 - CPP心得
摘要:c++类继承内存布局的分类:vcc++2011-11-07 08:141544人阅读评论(2)收藏举报c++structdelete编译器cmanager今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。——谈VC++对象模型(美)简.格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++ Object Model虽然是一本好书,然而,书的篇幅多一些,又和具体的VC++关系小
阅读全文
摘要:pthread_cond_wait()用法分析多线程编程中,发现同步和互斥的手段中,条件变量见到的是最少的。后来查找资料发现:使用信号量完全可以模拟条件变量,而且通常更加具有优势。可以用信号量模拟锁和条件变量:1) 锁,在同一个线程内同时对某个信号量先调用sem_wait再调用sem_post, 两个函数调用其中的区域就是所要保护的临界区代码了,这个时候其实信号量是作为二值计数器来使用的.不过在此之前要初始化该信号量计数为1,见下面例子中的代码.2) 条件变量,在某个线程中调用sem_wait, 而在另一个线程中调用sem_post.不过, 信号量除了可以作为二值计数器用于模拟线程锁和条件变量
阅读全文
摘要:分类:linux2009-06-19 09:3337142人阅读评论(24)收藏举报多线程linuxsemaphoresystemlinux内核signal很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。今天终于下了决心,写点东西,以后可以再修修补补也无妨。一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。我想,只要你不是整天都写那种int main()到底的代码的人,那么或多或少你会遇到代码响应不够用的情况,也应该有
阅读全文
摘要:c语言中*P=NULL的作用书上说NULL对暂时不用的指针变量赋初值如 int *p=NULL但书上又说企图用*p=5给p所指向的存储单元赋值,则系统将给用户一个错误信息为什么呢?赋初值之后想用到这个指针变量了 想赋5 哪里不可行了?我这里没弄懂答:p是个指针,指针是指向一个地址的,地址里面存放的才是值,int *p=NULL,意思是虽然给*p本身分配了一个空间但是p本身没有指向一个确定的地址。可能是栈上的一个地址,也可能是静态数据区,还可能是系统核心数据区 。更不要说地址里面的值了,如果你程序里想让P指向一个值,先得让他指向一个地址,比如说 int *p=&a 意思是给P分配了一个整
阅读全文
摘要:一。new/delete 与 malloc/free 的区别1。new自动计算需要分配的空间,而malloc需要手工计算字节数2。new是类型安全的,而malloc不是,比如:int*p=newfloat[2];//编译时指出错误int*p=malloc(2*sizeof(float));//编译时无法指出错误------以上两点只是改进,但以下两点malloc就无能为力了newoperator由两步构成,分别是operatornew和construct3。operatornew对应于malloc,但operatornew可以重载,可以自定义内存分配策略,甚至不做内存分配,甚至分配到非内存设备
阅读全文
摘要:前言http://blog.csdn.net/haoel/article/details/1948051 C++中 的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针(引用)指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术 可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。虚函数表 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Tab..
阅读全文
摘要:from http://blog.csdn.net/shunqiziranhao007/article/details/8646489/*goal, C++虚函数表的测试,测试了一部分,其他情况以后有机会再学习了。date, 2013-3-7http://blog.csdn.net/shunqiziranhao007/article/details/8646489*/#include <iostream>using std::cout; using std::endl;typedef void(*voidFun)();// 一个空的类,看看有什么信息可以挖掘,可以拿来和其他情况对比
阅读全文
摘要:from: http://www.programfan.com/article/2782.html1.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public:virtual void foo() { cout << "A::foo() is called" << endl;}};class B: public A{public:virtual void foo() { cout << "B::foo() is calle
阅读全文
摘要:有人说C++程序员可以分为两类,读过Effective C++的和没读过的。世界顶级C++大师Scott Meyers 成名之作的第三版的确当得起这样的评价。本书并没有你告诉什么是C++语言,怎样使用C++语言,而是从一个经验丰富的C++大师的角度告诉程序员:怎么样快速编写健壮的,高效的,稳定的,易于移植和易于重用的C++程序。本书共分为9节55个条款,从多个角度介绍了C++的使用经验和应遵循的编程原则。本系列文章分两部分概括介绍了《Effective C++》每个条款的核心内容,本文是第一部分,第二部分为:《Effective C++》读书笔记(第二部分)。1. 让自己习惯C++(Accus
阅读全文
摘要:6. 继承与面向对象设计(Inheritance and Object-Oriented Design)条款32: 确定你的public 继承塑模出is-a 关系本条款告诉读者一个非常基本的继承思想:”public 继承”意味is唱。适用于base classes 身上的每一件事情一定也适用于derived classes 身上,因为每一个derived class 对象也都是一个base class 对象,但反之不然。条款33: 避免遮掩继承而来的名称(1) derived classes 内的名称会遮掩base classes 内的名称。在public 继承下从来没有人希望如此。举例:cl
阅读全文

浙公网安备 33010602011771号