鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 编程语言开发 > c++ > >

C++学习笔记(三)

来源:互联网 作者:佚名 时间:2013-04-06 15:33
基础语法 函数 指针形参:若函数的形参是指向非const类型的指针,则传递的实参只能是指向非const类型的指针;若函数形参是指向const类型的指针,则传递指向const和非const类型的指针都可以。原因是:可以将指向const对象的指针初始化为指向非const对象,但不

基础语法

函数

    指针形参:若函数的形参是指向非const类型的指针,则传递的实参只能是指向非const类型的指针;若函数形参是指向const类型的指针,香港服务器,则传递指向const和非const类型的指针都可以。原因是:可以将指向const对象的指针初始化为指向非const对象,美国空间,但不可以让指向非const对象的指针指向const对象。

    引用形参:如果函数有非const引用形参,则不能通过const对象进行调用。

    在调用函数时,如果该函数使用非引用的非const形参,则既可以给函数传递const实参,也可以给函数传递非const的实参。原因是在C语言中,具有const形参或非const形参并无区别,都是实参的副本,这里主要是与C语言兼容。原因:实参传递时复制传递,可以用const对象初始化非const对象,反之亦然。

    通过引用传递数组,编译器会检查数组实参大小与形参大小是否匹配。若直接传递数组,编译器只是传递了指向数组第一个元素的指针,并不进行数组大小的匹配。

    如:void func(int (&arr)[10]);

    传递多维数组方法:void func(int (arr*)[10]);或者void func(int arr[][10]);

    如果一个函数的形参具有默认实参,那么,它后面所有的形参都必须具有默认实参。要给一个带默认实参的形参提供实参,那么也必须给它前面的带默认实参的形参提供实参。

    在一个文件中,只能为一个形参指定默认实参一次,一般在声明中指定默认实参。若在定义中的形参表中指定默认实参,那么只有在包含该函数定义的源文件中调用该函数是,默认实参才有效,所以说,默认实参一般要定义在头文件中。

    编译器隐式的将在类内定义的成员函数当做内联函数。

    类中成员函数形参表后面的const表明this是指向const对象的指针,不能修改调用该函数的对象,这种函数叫const成员函数。

    关于函数指针:

    ①  Typedef bool (*cmpFcn)(const string&,const string&);表示cmpFcn是一种指向函数的指针类型名字。

    ②  函数指针不存在类型转换。

    ③  调用函数指针的方法如:

    函数声明为bool lengthCompare(const String&,const String&);

    cmpFcn pf=lengthcompare;

    lengthCompare(“hi”,”bye”);//函数名直接调用

    pf(“hi”,”bye”);//函数指针调用

    (*pf) (“hi”,”bye”);//函数解引用调用

    ④函数指针型的形参:

    void useBigger(bool(const String&,const String&));            

    void useBigger(bool(*)(const String&,网站空间,const String&));

标准IO库

    IO对象不可复制或赋值。由于流对象不能复制,随意不能存在vector容器中。形参或返回类型不能为流对象。必须传递或返回IO对象的指针或者引用。引用必须是非const类型的。

上一篇: C++学习笔记(二)
下一篇: c++ const
网友评论
<