上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 75 下一页
摘要: 1、继承,动态绑定,数据抽象一起成为面向对象编程的基础。2、模板使我们能够编写独立于具体类型的泛型类和泛型函数。在C++中,用类进行数据抽象,用类派生从一个类继承另一个类:派生类继承基类的成员。动态绑定使编译器能够在运行时决定是使用基类中定义的函数还是类中定义的函数。3、C++中,多态性仅用于通过继承而相关联的类型的引用或指针。4、定义为virtual的函数是基类期待派生类重新定义的。保留字virtual只在类内部的成员函数声明中出现。5、一旦函数在基类中声明为虚函数,它就一直为虚函数。6、派生类对象由多个部分组成:派生类本身定义的(非static)成员加上由基类(非static)成员组成的子 阅读全文
posted @ 2011-03-28 16:45 浪里飞 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 1、转换分为到类类型与从类类型的转换两种。到类类型的转换:通过转换构造函数;从类类型的转换:转换操作符。2、常用16个操作符:5个算术操作符(+、-、*、/、%)及其对应的复合赋值操作符,4 个关系操作符(<、<=、>、>=),以及相等操作符(==、!=)。示例class SmallInt{public: SmallInt(int i = 0):val(i) { //... } operator int() const {return val;} //转换操作符函数,由SmallInt类类型转换成int型。private: std::size_t val;};Small 阅读全文
posted @ 2011-03-27 17:03 浪里飞 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 1、自增操作符和自减操作符为了与内置类型一致,前缀操作符应返回被增量或减量对象的引用;后辍式操作符应返回旧值(不是引用)。后辍式操作符函数接受一个额外的(即无用的)int型形参。示例#include "iostream"#include "stdio.h"using namespace std;class CheckedPtr{public: CheckedPtr(int *b, int *e):beg(b), end(e), curr(e){}public: CheckedPtr& operator++(); //前辍 CheckedPtr&a 阅读全文
posted @ 2011-03-27 15:40 浪里飞 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 1、除了函数调用符之外,重载操作符的形参数目(包括成员函数的隐式this指针)与操作符的操作数目相同。函数调用操作符可以接受任意数目的操作数。表1 可重载的操作符名+-*/%^&|~!,=<><=>=++--<<>>==!=&&||+=-=/=%=^=&=|=*=<<=>>=[]()->->*newnew[]deletedelete[]表2 不能重载的操作符::.*.?:不能通过连接其他合法符号来创建任何新的操作符。2、重载操作符必须具有一个类类型/枚举类型操作数。不能改变内置操 阅读全文
posted @ 2011-03-26 14:36 浪里飞 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 1、格式化输入函数scanf用法: scanf("格式串" ,地址1,地址2,···);1)格式符syntax: %[*][width][h|l|L]type(1) [h|l|L]typed 以十进制有符号整数形式转换输入数据i 以十进制有符号整数形式转换输入数据(同d格式)u 以十进制无符号整数形式转换输入数据o 以八进制有符号整数形式转换输入数据x |X 以十六进制有符号整数形式转换输入数据(x和X等效)e|E|f|g|G 以十进制浮点数形式转换输入数据,输入数据时,可以输入整型常量、小数形式实型常量或指数形式实型常量。c 输入一个字符(可 阅读全文
posted @ 2011-03-25 19:15 浪里飞 阅读(1307) 评论(0) 推荐(0) 编辑
摘要: 1、C语言中,非零值为真,真用1表示;零值为假,假用0表示。2、转义字符参考:\a蜂鸣,响铃\b回退:向后退一格\f换页\n换行\r回车,光标到本行行首\t水平制表\v垂直制表\\反斜杠\'单引号\"双引号\?问号\ddd三位八进制\0空字符(NULL),什么都不做\xhh二位十六进制说明:1)\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。2),\n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。注: 文本文件的行结束符,传统上(MS)PC用 CRLF,苹果Mac用CR,unix 用 LF。 CR -- 阅读全文
posted @ 2011-03-25 18:10 浪里飞 阅读(5527) 评论(0) 推荐(1) 编辑
摘要: 1、sscanf()的使用技巧: int sscanf(const char *buffer, const char *format,……); 从缓冲区中按指定格式输入字符,buffer为数据缓冲区。 1)char str[100],str1[100],str2[100]; gets(str); sscanf(str,”%s%s”,str1,str2); 将读入的一整行字符串按空格,制表符或回车... 阅读全文
posted @ 2011-03-25 17:42 浪里飞 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 1、一般采取三种方法1)指针成员采取常规指针型行为。这样的类具有指针的所有缺陷但无需特殊的复制控制。2)类可以实现所谓的“智能指针”行为。指针所指向的对象是共享的,但类能够防止悬垂指针。3)类采取值型行为。指针所指向的对象是唯一的,由每个类对象独立管理。2、类中定义指针时,需要考虑的有:类的复制,类的赋值,类的析构,共享对象,及悬垂指针。 3、定义智能指针一个行为类似指针但也提供其他功能的类。智能指针的一个通用形式是接受指向动态分配对象的指针并负责删除该对象。用户分配对象,但由智能指针类删除它。智能指针类需要实现复制控制成员来管理指向共享对象的指针。引用计数是实现智能指针的常用方法。注意:是由 阅读全文
posted @ 2011-03-25 16:31 浪里飞 阅读(451) 评论(1) 推荐(0) 编辑
摘要: 1、显式构造函数复制构造函数是一种特殊构造函数,具有单个形参,该形参(常用 const 修饰)是对该类类型的引用。当定义一个新对象并用一个同类型的对象对它进行初始化时,将显式使用复制构造函数。当将该类型的对象传递给函数或函数返回该类型的对象时,将隐式使用复制构造函数。编译器自动执行类中非static数据成员的析构函数。2、赋值操作符可以通过指定不同类型的右操作数而重载。3、有一种特别常见的情况需要自己定义的复制控制成员的:类具有指针成员。4、C++支持两种初始化形式:直接初始化和复制初始化。复制初始化使用=,而直接初始化将初始化放在圆括号中。当用于类类型对象时,初始化的复制形式和直接形式有所不 阅读全文
posted @ 2011-03-25 15:18 浪里飞 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 1、构造函数初始化式只在构造函数的定义中而不是声明中指定。2、从概念上讲,可以认为构造函数分两个阶段执行:(1)初始化阶段;(2)普通的计算阶段。计算阶段由构造函数函数体中的所有语句组成。不管成员是否在构造函数初始化列表中显式初始化,类类型的数据成员总是在初始化阶段初始化。初始化发生在计算阶段开始之前。3、使用构造函数初始化列表的版本初始化数据成员,没有定义初始化列表的构造函数版本在构造函数函数体中对数据成员赋值。4、没有默认构造函数的类类型的成员,以及 const 或引用类型的成员,不管是哪种类型,都必须在构造函数初始化列表中进行初始化。5、内置类型的成员不进行隐式初始化,对非类类型的数据成 阅读全文
posted @ 2011-03-24 12:10 浪里飞 阅读(463) 评论(0) 推荐(0) 编辑
上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 75 下一页