C|C++
文章平均质量分 64
LinEvan
搭上80后末班车,现居于古都南京,互联网程序猿,骑行爱好者,民谣摇滚听众,偶尔读点小书
展开
-
关于C++继承类和对象
公有、私有和保护继承都可以直接访问基类的公有数据和接口以及保护数据和接口。在继承类方法直接调用或者通过“基类名+::”调用公有继承的对象可以访问基类的公有数据和接口,私有继承和保护继承不能公有继承通过类或者对象都可以访问基类的公有静态成员和函数,通过“类+::”调用或者“对象+.”调用未完待续...原创 2014-04-22 11:53:08 · 1429 阅读 · 4 评论 -
C++冲刺(二)内置类型转换
C++定义了一组内置类型对象之间的标准转换,在必要时它们被编译器隐式地应用到对象上。隐式类型转换发生在以下几种情况:1.在混合类型的算术表达式中。在这种情况下最宽的数据类型成为目标转换类型,这也被称为算术转换。2.用一种类型的表达式赋值给另一种类型的对象3.把一个表达式传递给一个函数,调用表达式的类型与形式参数的类型不相同4.从一个函数返回一个表达式的类型与返回类型不相同算术转原创 2014-08-15 09:35:56 · 909 阅读 · 0 评论 -
C++冲刺(一)内置数据类型大小
整型从最小到最大依次是:bool, char, signed char, unsigned char, short, unsigned short, int, unsigned int, long ,unsigned long。浮点型原创 2014-08-15 09:23:09 · 654 阅读 · 0 评论 -
C++冲刺(五)C/C++内存机制
(一)C内存机制1. 栈(Stack): 位于函数内的局部变量(包括函数实参),由编译器负责分配释放,函数结束,栈变量失效。2. 堆(Heap) : 由程序员用malloc()/calloc()/realloc()分配空间,free()释放所申请的空间。如果程序员忘记free(),则会造成内存泄漏,程序结束时可能会由操作系统回收,也许就一直占用着直至原创 2014-08-15 10:09:46 · 764 阅读 · 0 评论 -
c++冲刺(四)字节对齐问题详解(转载)
一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数转载 2014-08-15 10:03:41 · 795 阅读 · 0 评论 -
Effective C++(六)继承与面向对象设计
vitual函数意味“接口必须被继承”,non-virtual函数意味“接口和实现都必须被继承”条款32:确定你的public继承塑模出is-a关系请记住:“public继承”意味is-a。适用于base classes身上的每一件事情一定也适用于derived classes身上,因为每一个derived class对象也都是一个base classes对象is-a并非是原创 2014-07-29 20:44:48 · 664 阅读 · 0 评论 -
Effective C++(五)接口实现
异常安全保证、inline函数等等原创 2014-07-29 20:44:03 · 615 阅读 · 0 评论 -
Effective C++(四)接口设计与声明
条款18:让接口容易被正确使用,不易被误用请记住:好的接口很容易被正确使用,不容易被误用。“促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容“阻止误用”的办法包括建立新类型、限制类型上的操作,束缚对象值,以及消除客户的资源管理责任tr1::shared_ptr支持定制型删除器。这可防范DLL问题,可被用来自动解除互斥锁等等。许多客户端错误可以因为导入新类型而获得预原创 2014-07-29 20:43:10 · 749 阅读 · 0 评论 -
Effective C++(二)构造/析构/赋值运算
条款05:了解C++默默编写并调用哪些函数请记住:编译器可以暗自为class创建default构造函数、copy构造函数、copy assignment操作符,以及析构函数。所有这些函数都是public且inline。唯有当这些函数被需要(被调用),它们才会被编译器创建出来。default构造函数和析构函数主要是给编译器一个地方用来放置“藏身幕后”的代码,像是调用base classes和原创 2014-07-29 20:41:52 · 825 阅读 · 0 评论 -
Effective C++(七)模板和泛型编程
条款41:了解隐式接口和编译器多态请记住:classes和Templates都支持隐式接口(interfaces)和多态(polymorphism)对classes而言接口是显式的,以函数签名为中心。多态则是通过virtual函数发生于运行期对templates参数而言,接口是隐式地,奠基于有效表达式。多态则是通过template具现化和函数重载解析发生于编译期。条原创 2014-07-29 20:46:07 · 685 阅读 · 0 评论 -
Effective C++(三)内存与资源管理
内存是必须管理的众多资源之一,其他常见的资源还包括文件描述起、互斥锁、图形界面中的字型和笔刷、数据库连接、以及网络sockets。原创 2014-07-29 20:42:28 · 619 阅读 · 0 评论 -
Effective C++(一)让自己习惯C++
条款01:视C++为一个语言联邦C++是个多重范式编程语言(multiparadigm programming language),一个同时支持过程形式(procedural)、面向对象形式(object-oriented)、函数形式(functional)、泛型形式(generic)、元编程形式(metaprogramming)的语言。理解C++的几个次语言:C。高效编程守则照出原创 2014-07-29 20:40:26 · 629 阅读 · 0 评论 -
Effective C++(八)定制new和delete
8 定制new和deleteSTL容器所使用的heap内存是由容器所拥有的分配器对象(allocator ojects)管理,不是被new和delete直接管理。条款49:了解new-handler的行为请记住:set_new_handler允许客户指定一个函数,在内存分配无法获得满足时被调用Nothrow new是一个颇为局限的工具,因为它只适用于内存分配;后继的原创 2014-07-29 20:49:11 · 731 阅读 · 0 评论 -
C++冲刺(六)C++类对应的内存结构
转自:http://blog.csdn.net/guogangj/article/details/2036785转载 2014-08-27 16:20:53 · 701 阅读 · 0 评论 -
C++冲刺(七)C++多态实现机制
编译系统为每个包含虚函数的类包括它的子类都创建一个虚函数表,称为vftable,这是一个指针数组,存放每个虚函数的入口地址,供该类的所有对象共享。在每个类对象中放置称为vfptr的虚表指针,指向所属类的虚函数表。当通过指针调用虚函数时,编译器通过vfptr,在其所指的虚函数表中查找函数入口地址,从而实现动态多态性.在多重继承下,如果派生类的多个基类含有虚函数,编译系统会为它创建多个虚函数表。原创 2014-09-05 10:42:22 · 1822 阅读 · 0 评论 -
C++联合容器set和map
1. 联合容器联合容器将值与关键字关联在一起,使用关键字来查找值。联合容器的长处在于,它提供了对元素的快速访问。与序列相似,联合容器也允许插入新元素,不过不能指定元素的插入位置。原来是联合容器通常包含用于确定数据放置位置的算法,以便能够很快检索信息。STL提供4种容器:set,multiset,map,multimap。一般地当我们只想知道一个值是否存在时,set 最有用处;希望存储也可能原创 2014-07-29 15:43:17 · 794 阅读 · 0 评论 -
C++类中static成员使用
static成员static const和枚举可以在类声明中初始化,const和引用在构造函数初始化列表中初始化,而static成员只能在类外初始化static成员必须先初始化再使用,在类的方法中初始化或者在main()开始之前、类的声明之后的特殊地带为它提供定义和初始化公有static成员可以通过类名、类对象和公有继承类对象进行访问私有static成员不能被类外部函数访问,也不能用对象进原创 2014-04-18 00:30:42 · 1399 阅读 · 2 评论 -
C++冲刺(三)运算符优先级
优先级最高的是数组下标、函数调用、操作符各结构成员操作符。(如()[] -> .)单目运算符的优先级仅次于前述运算符。类型转换也是单目运算(如!~ ++ -- - (type) * & sizeof)。单目运算符是自右至左,如*p++解释为*(p++) 双目运算符中算术运算符的优先级最高,移位运算符次之,关系运算符再次之,接着是逻辑运算符、条件运算符,最后是赋值运算符。原创 2014-08-15 09:49:33 · 866 阅读 · 0 评论