坚持c++学习,真正掌握c++(1)

今天全面复习了c++primer中的第七章函数部分,复习了函数的声明,定义,重载以及内联函数的使用。最后复习了指向函数的指针。下面是我的复习心得:

1. c++为了兼容c语言,以下的两种函数声明是同样的,因为const int形参既接受const实参也接受非const实参,所以没有区别;

int f(int); 
int f(const int);
2. 与全局变量和局部变量的定义类似,局部变量的定义会屏蔽掉全局变量的定义:如下

....
int x=9;
int main()
{
      string x="hello";
      cout<<x<<endl;
      return 0;

}
输出的结果将为hello,因为程序运行时遇到x,将会从使用处向上寻找x的定义,遇到x被声明为string则就认为x为string类型,那么函数的声明也是这样的道理:

void f(int);
int main()
{
      void f(int);
      f(2);
      return 0;
}
上面程序执行时将会调用main函数中定义的f函数;

3. 在不希望对实参进行赋值改变时,尽量要使用const引用作为形参,因为这样既可以讲const实参传递也可以讲非const形参进行传递;

4. 在函数重载时,仅仅只有函数的返回值类型不同的函数重载是不允许的;同样1中所示的那样的函数重载也是不允许的;

5. 内联函数的定义和声明要同时在头文件中;

6. 静态局部变量不会因为函数调用的结束也被销毁,将会储存在内存中直至程序的结束;

7. 类的成员函数具有隐含的,额外的形参,就是this指针;

8. 构造函数类特殊的成员函数,没有返回值,没有形参的构造函数叫做默认构造函数,如果类定义中没有定义构造函数,则编译器会给出默认构造函数,这个默认的构造函数叫做合成的默认构造函数,合成的默认构造函数一般适合仅包含类类型成员的类,不会自动初始化内置类型的成员;

9. 代码组织上,应该将函数的声明放在头文件中,而函数的实现定义放在同名的源文件中;

10. 指向函数的指针,如下:

bool (*pf)(const string &,const string &);
如上代码,将pf声明为指向函数的指针,若是麻烦,也可以用typedef进行类型的别名转化:

type bool(*cmpFn)(const string &,const string &);
以上代码,将cmpFn声明为函数指针类型同义。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值