随笔分类 - C++
摘要:for_each使用方法详解[转]Abstract之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL)曾經討論過for_each(),不過當時功力尚淺,只談到了皮毛而已,這次看了effective STL的item 41、43後,對for_each()又有了...
阅读全文
摘要:《深入浅出MFC》中形容虚函数是执行一般化操作,一直没有领悟要点。现在的体悟是抽象,先前考虑问题都是由抽象到具象,比如下文中的示例,由上(虚基类的「怪物」)至下(派生类的三个子类「狼」「蜘蛛」「蟒蛇」)考虑。其实逆向思考一下,由具象到抽象,虚函数的作用就显而易见了,将不同的但同时也是类似的种类的...
阅读全文
摘要:C++ override overload 的区别override是指在不同作用域中,多个函数原型完全一样,而实现却不同的函数。在C++中,经常发生在类的继承中。当基类中的某个方法是virtual或pure virtual函数时(当然访问权限必须是public或protected,因为从C++设计思...
阅读全文
摘要:不应该不知道C++的常用库非常惭愧,我过去也仅仅了解boost、STLport这样的库,以及一些GUI库,但是居然有如此众多的C++库,其实令我惊讶。当然,这个问题应该辩证的看,对于拿来主义确实可以直接使用这些库,但是如果学习和专业的开发,确实应该自己写,因为——适合的才是最好的。无论效率还是简洁性...
阅读全文
摘要:C++ static 函数的问题近日读C++primer中static一章,有这么一句话,“静态成员函数的声明除了在类体中的函数声明前加上关键字static以及不能声明为const或volatile之外与非静态成员函数相同出现在类体外的函数定义不能指定关键字static”为什么不能在类体外指定关键字...
阅读全文
摘要:推荐!国外程序员整理的 C++ 资源大全关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz 发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++标准库,包括了STL容器,算法和函数等。C++ Standard Library:...
阅读全文
摘要:转自:http://blog.163.com/wujiaxing009@126/blog/static/719883992011113011359154/一、C++中不能使用random()函数 random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。但在C语言中int ran...
阅读全文
摘要:转自:http://en.cppreference.com/w/cpp/language/copy_initializationcopy initializationC++C++ languageInitializationInitializes an object from another obj...
阅读全文
摘要:转自 http://blog.jobbole.com/54140/操作符重载和检查顺序重载,(逗号),||或者&&操作符会引起混乱,因为它打破了正常的检查规则。通常情况下,逗号操作符在整个左边检查完毕才开始检查右边,|| 和 &&操作符有短路行为:仅在必要时才会去检查右边。无论如何,操作符的重载版本...
阅读全文
摘要:转自:http://blog.csdn.net/yunhua_lee/article/details/510552430分钟掌握面向对象类的设计原则看过设计模式的人不少,但看过Martin的面向对象的设计原则的估计不多(详情可参考《敏捷软件开发:原则、模式与实践》)。实际上这两者是相辅相成的:设计模式是具体的实践方法,而设计原则是指导思想;设计模式让你知道How,而设计原则让你知道Why。《敏捷软件开发:原则、模式与实践》原著洋洋洒洒几十万言,介绍面向对象类的类的设计几个原则也有几十页,没有耐心的朋友估计看不下去。没关系,这里我给大家一个精简版的,让你读完本博就能够初步掌握这些原则,而且附送一
阅读全文
摘要:转自:http://blog.csdn.net/artechtor/article/details/23127661、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_93b45b0f01015s95.html我们经常会遇到这些问题:(1)C++中定义一个空类,他们它的大小(sizeof) 为多少?(2)只有一个char数据成员的类的大小?(3)能否定义一个空数组?(4)空数组名做标示的指针指向什么地方?(5)空类有什么用?(6)空数组有什么用?等等这些问题,笔者在这篇文章统统做一个比较详细的解析和认识。1,sizeof是什么?首先我们要理解sizeof是什么东西?准确来讲,对于C++这种强类型的语言,在某一时刻,对象的类型的大小是确定的,这个信息在编译的时候直接可以确定,所以我们要明白si
阅读全文
摘要:转自:http://blog.csdn.net/alexwei2009/article/details/6157926c++是一种面向对象的编程语言,它向下保持了对c的兼容,同时也允许程序员能够自由的操控内存,虽然会带来一些问题,但这不是我们要探讨的问题,略过不表。类是对某种对象的定义,包含变量和方法,也可以理解为现实生活中一类具有共同特征的事务的抽象,他是面向对象语言的基础。所以类是不占有内存的,可是如果类生成实例那么将会在内存中分配一块内存来存储这个类。 类的实例在内存中是如何分配内存的,有什么需要我们注意的,下面将慢慢到来。 比如下面一个类: class A {}; 从形式上看,它似乎什
阅读全文
摘要:转自:http://blog.csdn.net/xiao3404/article/details/222764852.共用体2.1共用体的概念 共用体是一种构造类型的数据结构。在一个“共用体”内可以定义多种不同的数据类型,这些变量共享同一段内存,已达到节省空间的目的,共用体内的变量互相覆盖。定义共用体类型变量的一般形式:union 共用体名{成员表列;}变量表列;例如:[cpp]view plaincopyuniondata{inti;charch;floatf;}a,b;可以看见,“共用体”与“结构体”的定义形式相似,但他们的含义不同。共用体的各成员变量在内存中的字节数可能不同,但这些变量.
阅读全文
摘要:[C++]字节对齐与结构体大小转自:http://pppboy.blog.163.com/blog/static/30203796201082494026399/结构体的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。这些问题在平时编程的时候也确实不怎么用到...
阅读全文
摘要:自我总结:(之前查过goto和switch的资料但是一直没有搞懂,直到今天看到这个讨论才懂了)1 int a; 是个描述,而不是个命令,只是说明我需要空间,编译器会保证在相应的作用域之中这个变量的空间是被分配了(只要改一下堆栈指针就好)。2 大部分编译期实现会选择在函数开始把所有局部变量的空间都分配好。3 声明还可以是一个类的对象,那么这时候这个声明的语句就很可能是一个命令了:调用相应的构造函数。这种情况下,编译器就会告诉你跳过了该做的事情,不能这么写了。之前我的错误理解和这个形容是一样的:vczh(作者)回复yksgj你觉得编译器产生的代码,有可能真的是运行到int ival;这一行,就..
阅读全文
摘要:转自:http://blog.csdn.net/haussuden/article/details/5965304指针与多维数组(主要指二维数组)int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};换个角度看世界:如首行一样,将首行视为一个元素,一个特殊的元素,这个“特殊的”元素是一个一维数组。那么这个二维数组是由是由三个“特殊的”元素组成的一个“特殊的”一维数组。a是这个“特殊的”一维数组的名称,也就是首地址,也就是第一个元素的地址,也就是第一行的首地址,是指首行一整行,并不是指某个具体元素。那么我们称之为“行指针”。同理:a+0,a+1,a+2,都是行
阅读全文
摘要:在C/C++中动态分配二维数组可以先申请一维的指针数组,然后该数组中的每个指针再申请数组,这样就相当于二维数组了,但是这种方法会导致每行可能不相邻,从而访问效率比较低。如何申请连续的二维数组了?本文将分别三个方面讲解:一.动态申请列大小固定的二维数组二.C语言中动态申请连续的二维数组三.C++语言中动态申请连续的二维数组转自:http://blog.csdn.net/morewindows/article/details/7664479后面整理!
阅读全文
摘要:孙鑫VC++教程,第三章中this指针开始自己写错了,然后google得来一个此提问。CTestAPP 由 CWinAPP 派生而来CWinApp::CWinApp(LPCTSTR lpszAppName) //带参数{ ...... pThreadState->m_pCurrentWinThread = this; //注意,这个this指针指向那个对象?是CWinAPP还是CTestAPP //孙老师说是指向派生类CTestAPP的对象,但是我的试验中却是指向基类对象啊 ASSERT(AfxGetThread() == this); ......}我做的试验如下:#inclu...
阅读全文
摘要:http://baiy.cn/http://baiy.cn/doc/cpp/inside_exception.htm
阅读全文

浙公网安备 33010602011771号