码迷,mamicode.com
首页 > 编程语言 > 详细

C++语言基础(1)-C++对C的增强

时间:2017-06-15 17:16:50      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:free   形参   常量指针   ...   大型   方便   swap   操作符   缺省   

 

C++对C的增强主要体现在以下几个方面:

1.头文件

传统的C头文件 #include <stdio.h>。
C++头文件    #include <iostream>
另外,C++还支持后缀名为.hpp的头文件。

注意:为了与C语言的头文件作出区分,引入C++的库函数头文件是不带.h的,典型的如:#include <iostream>.

2.命名空间

C++引入了新的概念——命名空间,命名空间可以有效避免大型项目中的各种名称(变量,函数名)冲突。这点有点类似于java里面的包名,不过C++里面的命名空间是不能包含.的。

命名空间语法:

namespace yongdaimi {

  // TODO ...

}

也可以写成

namespace {

}

这样的话,在这个命名空间里面定义的变量和函数则只能在这个文件里面使用。

3.更严格的类型转化

在C++中,不同类型的指针是不能直接赋值的,必须强转。

4.new和delete

new和delete是C++内建的操作符(也就意味着不需要包含任何头文件),用new分配的内存必须用delete释放,不要用free。
而且如果在C++里面分配class类型时,一定不能用malloc,必须用new。

new创建数组的方法new[];

5.内联函数

inline关键字的意思是,内联函数不作为函数调用,而是直接把内联函数的代码嵌入到调用的语句中。

内联函数适合函数代码很少,并且频繁的大量调用。

6.缺省参数

C++允许函数在定义的时候,提供缺省参数,如果调用函数的时候没有提供形参,那么形参的值就是缺省值。

例:

void foo (int a = 10)
{
    printf(“a = %d”,a);
}
int main()
{
    func(); // 如果a的值不填,则默认a的值为10
    return 0;
}

7.引用

C++提供了一个新的操作符“&”,用来方便对变量的操作。引用就是一个变量的别名,而不是地址。引用的本质就是一个常量指针

例:

#include "iostream"

using namespace std;

int swap(int &a, int &b)
{
    int c = 0;
    c = a;
    a = b;
    b = c;
    return 0;
}


int swap2(int *a, int *b)
{
    int c = 0;
    c = *a;
    *a = *b;
    *b = c;
    return 0;
}

int main()
{

    //int a = 10;
    //int &b = a; // 相当于定义一个引用
    //b = 11;

    int a = 10;
    int b = 9;

    swap(a,b);

    printf("a = %d, b = %d\n",a,b);

    system("pause");
    return 0;
}

8.函数的重载

类似于java,C++也支持对函数进行重载,重载的规则与java相同:即:

函数名相同,参数不同,视为重载;函数名相同,返回值不同,则不视为重载

下面就是一个重载的例子:

void func(int a);

void func(const char a;);

 

C++语言基础(1)-C++对C的增强

标签:free   形参   常量指针   ...   大型   方便   swap   操作符   缺省   

原文地址:http://www.cnblogs.com/yongdaimi/p/7018646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!