您的位置:首页 > 编程语言 > C语言/C++

C++对C的扩充

2019-05-21 11:46 1946 查看

C++对C的一些简单扩充

  1. C++的输入和输出
    cout << “Hello World!” << endl;
    cin >> i ;
  2. 用const定义常量
    #define : 实际上,只是在预编译的时候进行字符置换,把程序中出现的字符全部置换为用 define定义的。它既不是变量,没有类型,也不占用存储单元,容易出错。
    const : const具有变量的属性,有数据类型,占用存储单元,有地址,可以用指针指向它。
    且在运行期间,变量的值是不变的。 const常与指针结合。
  3. 函数原型的声明
    int max(int x, int y)
    int max();
    max();
    都是正确的。
  4. 函数的重载
    函数名相同,参数的类型名和个数可以不相同
  5. 函数模板
    这是C中所没有的
    所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,凡是函数体相同的函数都可以使用这个模板来代替
#include<iostream>
using namespace std;
template <typename T>
T max()
{
if(B > a) a = b;
if(C > a) a = c;
return 0;
}
  1. 有默认参数的函数
    这是C中没有的
    主要是为了方便有时多次调用同一函数时使用同样的实参。
    有两种情况:
    ① 定义(给出默认值)------> 调用
    ② 声明(给出默认值)------> 调用 ------> 定义(可以不给出默认值)
  2. 变量的引用 (重要)
    这是C中没有的
    C++中的引用和JAVA中的引用不同,C++ 中变量的“引用”就是变量的别名
int a;
int &b = a;

对变量声明一个引用,并不另开辟空间,都代表同一变量单元。在声明一个引用时,必须同时使之初始化。
C++所以增加“引用“,主要是利用它作为函数参数,以扩充函数传递数据的功能。

#include<iostream>
using namespace std;
void swap(int &a,int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
int main()
{
int i = 3, j = 5;
swap(i,j);
cout << "i = " << i << " " << "j = " << j <<endl;
return 0;
}


对引用的进一步说明:

  • 不能建立void型引用
  • 不能建立引用的数组
  • 可以将变量的引用赋给一个指针,此时指针指向的是原来的变量。但是不能定义指向引用类型的指针变量
  • 可以建立指针变量的引用
  • 可以用const对引用加以限定,不允许改变该引用的值,但是它并不阻止改变引用所代表的变量的值。
  • 可以用常量或表达式对引用进行初始化,但此时必须有const做声明。
    如:
    int i = 5; const int &a = i + 3;

    此时编译系统是这样处理的:生成一个临时变量,用来存放该表达式的值,引用是该临时变量的别名。
    还可以用不同类型的变量对之初始化
    如:
    double d = 3.1415926; const int &a = d;

    但是未加const
    double d = 3.1415926; int &a = d;
    是错误的
  1. 内置函数
    主要是为了解决:规模很小但是频繁使用的函数(因为反复调用函数会比直接在函数内部实现花费的时间要多)
    指定内置函数的方法: 只需在函数首行的左端加一个关键字 inline 即可
#include<iostream>
using namespace std;
inline int max(int a, int b, int c)
{
if(b > a) a = b;
if(c > a) a = c;
return a;
}
int main()
{
int i = 1,j = 2, k = 3,m;
m = max(i,j,k);
return 0;
}
  1. 作用域运算符号
    :: 它能指定所需要的作用域
    例如: 要表示全局变量的时候 ::a
  2. 字符串变量 字符串数组
  3. 动态分配/撤销内存的运算符 new 和 delete
    开辟空间以存放一个结构体变量:
#include<iostream>
using namespace std;
struct Student
{
char name[10];
int num;
char sex;
};
int main()
{
Student *p;
p = new Student;
delete p;
return 0;
}

扩展小结:

  1. 许使用以//开头的注释
  2. 对变量的定义可以出现在程序的任意行(但必须在该变量的调用之前)
  3. 提供了标准输入输出流对象 cin cout
  4. 可以用const定义常量
  5. 可以利用函数的重载事项同一函数名代表功能类似的函数
  6. 可以利用函数模板简化同一类函数编程
  7. 可以使用带默认值的参数的函数
  8. 引用
  9. 内置函数
  10. 作用域运算符
  11. string类
  12. new delete
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: