2014年C++语言程序设计8786374.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
输入和输出 cout 对象 被编译器解释为: cout.operator(对象) 或 operator(cout, 对象) cin对象 被编译器解释为 cin.operator(对象) 或 operator(cin, 对象) * 友元函数 将函数声明成友元,以获得额外的权利 friend 一个成员函数的三项事情: 1)访问类中的私用部分 2)函数位于类的作用域中 3)必须经由对象调用(拥有this指针) 一个静态成员函数只有前两种性质,而友员函数只拥有第一个性质。 * 双目运算符重载 + 、- 、* 、/ … 、、=、=、==、!= ……. 使用成员函数实现 使用友元函数实现 注意事项 重载函数的参数尽量使用const 尽量使用const函数实现重载 * 单目运算符重载 ~ 、!、- ++ 前++和后++ -- 前- -和后- - * 不允许被用户重载的运算符 :: 作用域解析 . 成员选择 .* 通过到成员的指针做成员选择 ? : 三目运算符 sizeof typeid 另外,不允许对基本数据类型进行运算符重载 不能创造运算符 也不能违反语法定义的形式,比如,不能将%重载为一元运算 * 只能定义为成员函数的运算符 = 、+=、 -=、 *=、/=…… [] 下标运算 ()强制类型转换 - 间接 * C++语言程序设计 * 从C到C++ * C++ 80年代由贝尔实验室的Bjarne Stroustrup开发 C++是强类型语言,对类型检查更严格 C++比C更丰富 支持面向对象 支持泛型编程 支持异常 运算符重载等 * C++之父给C程序员的建议 在C++中几乎不需要用宏 用const 或 enum定义明显的常量,用inline避免函数调用的额外开销,用模板去刻画一族函数或类型,用namespace去避免命名冲突 不要在你需要变量之前去声明,以保证你能立即对它进行初始化。 不要用malloc,new运算会做的更好 避免使用void*、指针算术、联合和强制,大多数情况下,强制都是设计错误的指示器。 尽量少用数组和C风格的字符串,标准库中的string和vector可以简化程序 更加重要的是,试着将程序考虑为一组由类和对象表示的相互作用的概念,而不是一堆数据结构和一些去拨弄二进制 * 一些基本区别 g++编译器 源程序扩展名,cpp, cc, .C, .cxx 不再使用C中的头文件,虽然还是可以用,要用可以用cxxxx的头文件 scanf/printf==cin/cout stdio.h==iostream ,老一点有iostream.h 标准的c++头文件都没.h了 * C++中的命名空间 名字空间是一种描述逻辑分组的机制,如果有一些声明按照某种准则在逻辑上属于同一集团,就可以将它们放入同一个名字空间,以表明这个事实。 防止命名冲突也是一个很重要的原因。一个人写的程序放到一个名字空间中也是一种可取的做法。 成员可以在名字空间的定义里声明,而后采用namespace-name::member-name的形式去定义 一个名字空间的成员必须采用如下的记法形式引入: namespace namespace-name{ //声明和定义 } * Namespace 我们不能在名字空间定义之外用加限定的语法形式为名字空间引入新成员。 也能捕捉到例如拼写或类型不匹配一类的错误。 一个名字空间也是一个作用域,一个程序越大,通过名字空间去描述其中逻辑上独立的各个部分也就越重要。 理想情况是,程序里的每个实体都属于某个可以识别的逻辑单位(模块),所以,一个非凡的程序里的每个声明都应该位于某个名字空间里,以此指明它在程序中所扮演的角色。 * 使用名字空间 带限定词的名字。如果使用另外一个名字空间中的成员,需要加限定词,如:std::in. 使用声明:using std::in 使用指令:using namespace std; 无名名字空间 无名中的成员可以直接使用::访问 * 严格的类型检查 enum 在c中直接当整数,而C++中是一种独立的类型 C++中,调用函数不做类型提升 C++增加了bool类型,true, false 函数的参数表严格匹配,空参代表没有任何参数。 函数参数表中的参数如果没有参数名,只有类型,称作为哑元,一般是为了兼容性的考虑。 C中的隐式声明在C++中去掉了,返回类型int型的函数必须声明或定义。 * C++中的类型转换 ()强转 static_cast类型() 转换时做静态检查,即在编译时进行 reinterprect_case类型() 允许强转任何类型的指针 把整数强转成指针,指针强转成整数 const_cast类型() 去掉cv限制 dynami

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档