注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刘邓

每天收获一点点-目标:富足

 
 
 

日志

 
 

C ++细节(6)  

2012-04-28 11:16:29|  分类: C++编程思想(卷 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一.字符操作
#include<cctype>
toupper('a') ==A
toupper('A') == A
tolower('A')  == a
tolower('a') == a
isXX()//判断是否为大写字母,小写字母或者数字等
C++中所有的字符都对应于特定的int字符(ASCII码)

二.string对象的输入输出
在使用>>输入string时只能输入空白符之间的字符串,如要不忽略任何字符包括空白字符则可以使用getline函数实现如getline(cin.line)//则会读取直到换行符的所有字符。

三.自定义指针类型
为指针类型设置别名是一个好的习惯,如typedef int* IntPtr
这样做有2个好处:
1.可以避免忽略星号的错误
int *p1,p2;如果是为了把p1,和p2都声明为指针类型的话上面这句话就是错误的了,因为p2就是简单的整数类型。
IntPtr p1,p2;则可以顺利的将p1,p2设置为指针类型。
2.定义一个参数为指针变量的传引用调用函数时,int &*p非常麻烦 而IntPtr &p就简单多了。


四.指针类型参数的传值和传引用调用

指针的传值调用改变的是指针所指向内存地址的值,而传值调用改变了指针的值。

 

五.动态数组的创建和删除

T *p = new T[X];

为了删除这个动态数组应该使用:delete []p才能释放掉数组所占的空间;用delete p只删除了指针却没有释放掉内存空间

 

六.this指针

一般情况下this指针不需要显式的使用,因为调用函数的对象默认可以直接使用私有和公有成员。

this指针一般用在重载 ‘=’运算符时使用

用来返回调用'='的对象:

Object1 = (Object2 = Object3);

其中Object2 = Object3是Object2调用“=”返回*this

 

七.语句块

语句块是包括大括号以内的一些列语句,声明和其他可能的代码,需要注意的是语句块内的定义变量很有很能出现在语句块外失效的情况。这在调试的时候需要注意

 

八.为命名的命名空间

namespace{}

此未命名的命名空间将此命名空间内的所有名字都局限在当前的编码单元内(所以编码单元即单独的代码文件,如头文件,源文件),其他代码单元无法使用此命名空间中的名字。

使用未命名的名字空间的一个最大作用在于隐藏:可以隐藏此名字空间中的变量或者函数。

注:名字空间允许嵌套,普通的名字相当于姓,嵌套的相当于副姓?

 

九.注意检查文件输入输入操作前,文件是否被打开。

打开文件失败的可能原因:

1.路径或者文件不存在

2.没有足够的读取权限

没有正确打开文件的错误不会有任何提示,整个程序以一种不为人知的错误方式继续运行。

因此文件打开成功与否的检查是非常必要的

fstream f;

if(f.fail())

{

cout<<"Error to Open The File";exit(1);

}

 

十.文件流和普通输入输出流的关系

ofstream 继承于 ostream

ifstream 继承于 istream

为了提高函数通用性可以使用父类的引用ostream &OutStream作为形参,当传递参数为ofstream的引用时则自动调用ofstream的方法

这实际上就是多态,基类的引用相当于基类指针

注:fstream将同时可以对打开的文件进行读写操作,fstream的open函数运行在第二个参数下指定不同的操作方式组合如:ios::in|ios::out

 

十一.类和继承

子类会继承父类除了构造函数以外的所有成员变量和普通函数

一个简单的子类构造函数以特殊的形式为从父类继承来的成员变量赋值:

Son::Son(int t1,int t2,int t3):Father(t1,t2),m_t3(t3){}

 

十二.使用基类的私有成员变量

在任何情况下不同对象都不可以直接通过名字访问其他类的私有变量或者函数,即使是父类也是如此。

因此为了改变父类的基类的私有成员需要使用从父类继承下来的基类函数(如取值和赋值函数)

注:基类的私有成员函数不可以被继承。

 

十三.++,--

默认情况下在如循环计数是使用前置版本的++,或者--因为前置版本的不需要返回临时变量,效率更高。

  评论这张
 
阅读(72)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017