Chinaunix首页 | 论坛 | 博客
  • 博客访问: 280353
  • 博文数量: 111
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 816
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-04 20:35
文章分类

全部博文(111)

文章存档

2016年(1)

2015年(5)

2014年(105)

我的朋友

分类: C/C++

2014-06-20 06:52:38


——任何规则都不可能完全一致,以至于不能容许任何例外

一、基本类型
1. 指针:指向常量的指针 vs 指向指针的常量
    a. 指向常量的指针:const char *p
    b. 指向指针的常量:char* const p
2. 引用:声明时必须赋值
3. 指向void的指针:可以从别的指针类型转换为void*,  反之必须适用static_cast()
4. new: 返回指针,对象分配在堆
    a. 异常函数set_new_handler(fn)
5. static_case:相近类型的转换,reinterpret_case是完全不相关的类型的转换——最好都不用
6. 递归与迭代:其实迭代更接近循环,是对另外函数的调用;递归是对自身的调用,必须有递归出口,否则无限循环
7.extern
   a. 声明变量:表明变量在本文件之后或者其他文件中定义,提供多个文件使用同一个变量的功能
   b. 函数声明:同上
   c. extern "C":函数用C的标准编译
8. 函数指针
   a. void (*fp)(string) //声明函数指针可以指向的原型(参数,返回值)
   b. void error(string s) //可以被指向的函数实体
   c. fp =&error //赋值函数指针
   d. fp("abcd") //通过指针调用函数
9. 不定数目的函数参数:printf(const char* s ...)
10. 命名空间:namespace, 跟c#中完全一样
    a. 匿名namespace: 
        namespace {code...} ——相当于namespace $$${code...}, $$$根据不同编译器而不同
11. 参数查找:在本namespace中找不到函数,则在函数引用的类型命名空间中去找
 namespace ns
  {
  class Date {};
  std::string format(const Date&)
  }
  void f(ns::Date d, int i)
  {
  std::string s=format(d)  //找ns下的format
  std::string s=format(i) //错误,找不到合适参数
  }

12. 异常
    

阅读(358) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~