c++学习1

来源:互联网 发布:房地产税 知乎 编辑:程序博客网 时间:2024/06/05 16:39
(1)c++之父:本贾斯.斯特劳斯特卢普
(2)c++语言的标准:c++98 c++03 c++11 c++14
(3)c++集成开发工具(IDE):Eclipse CDT(Linux环境)
        VS(windows环境)
(4)c++对c的升级(区别)
     c++是一种面向对象的语言,而c是面向过程的语言
(5)面向对象的三大特点:继承,多态,封装
 因此c++作为面向对象的过程:继承决定其维护性好,封装决定其复用性强,多态决定其扩展性好
(6)c++支持的编程范式
    {
     (1)过程式
     (2)数据抽象
     (3)基于对象
     (4)面向对象式
     (5)函数式
     (6)泛型形式
     (7)模板元形式
    }    
(7)设计模式
     {
      简单工厂模式
      工厂模式
      代理模式
      适配器模式
     }
(8)c++中int i可以在for中定义
例子:for(int i = 0;;i++)
i只在这个for循环里有用,防止对for循环之后的i产生未知的影响
(9)c语言里register关键字存储在寄存器中,无法取得register修饰的变量的地址
     c++中register修饰的变量可以取得变量的地址
(10)c语言中const修饰变量的内存空间可以修改,但无法通过变量名修改值‘
      c++中修饰的变量不能访问(包括内存)
      也就是const int 只能用const int来接收
 (11)new和malloc的区别
      {
       1.new是c++里出现的,malloc是c库的
       2.new属于运算符,malloc属于函数
       3.new一具体类型为单位,malloc以字节为单位
 char *ptr = new char[2];
        int (*p)[2] = new int[2][2]
        char *p = (char *) malloc(100 * sizoef(char))
      4.new在单个类型变量可进行初始化,malloc不可以
      }
 (12)引用vs指针
   引用是给一个变量起别名
   类型 &引用名 = 变量名
   int a = 1;
   int &b = a;
   注意:引用一定要初始化,指明引用变量是谁的别名
         在c++中,如果传num的值,用int &num来接,即对num的内存空间进行修改,num本来的之也会改变
   区别:引用访问一个变量是直接访问,而指针是间接访问
         引用是一个变量的别名,本身不单独分配自己的内存空间,而指针有内存空间
         引用一经初始化不能再引用其它的变量,而指针可以
         尽可能使用引用,不得已使用指针
  (13)内联函数(以空间换时间)
 inline void add()
        将子函数直接嵌进去(以内存空间换运行时间)
        宏函数(以编译时间换运行空间)
    内联函数与带参数宏区别
    1.内联函数调用时,要求实参与形参类型一致,内联函数会先对实参表达式求值,然后传递给形参,而宏调用时只用实参简单代替形参
    2.内联函数是在编译时在调用的地方将代码展开,而宏在预处理进行替换
    3.在c++建议采用inline函数代替带参数宏
   (14)函数重载
     可以采用相同的函数名,但形参类型,个数,顺序不能都一样
     例子:int add(int a);
           int add(int a,int b);
           int add(char a,int b);
         这三个子函数可以同时存在,因为c++中,相同函数名讳自动根据形参区别,返回值不同不能作为重载条件
    (15)在c++中调用c编译的函数,必须用extern "C"混合编译
     #ifdef __cpluscplus
     extern "C"
     {
     #endif
         int add(int a, int b)
     #ifdef __cpluscplus
     }
     #endif
    (16)默认参数
     int add(int a, int b = 1, int c = 2)
     {
         return a + b + c;
     }
      add(1)的值就是1+1+2 = 4
     默认参数必须从右到左连续,即不能int add(int a = 1, int b, int c = 2)
     函数重载与默认参数有可能冲突    
0 0
原创粉丝点击