从C到C++(二)

105 阅读2分钟

本文已参与 ⌈新人创作礼⌋ 活动,一起开启掘金创作之路。

二、从C过渡到C++

C++中内存获取与释放:

int *ps=new int;
……
delete ps;

c++中的vector类似于string类,也是一种动态数组,示例:

#include <vector>
……
using namespace std;
vector<int> vi;
int n;
cin>>n;
vector<double> vd(n);

C++98中vector类的功能比数组强大,但付出的代价是效率稍低。C++11如果需要的是长度固定的数组array,使用数组是更佳的选择。

#include <iostream>
#include <vector>
#include <array>
int main()
{
    using namespace std;
    double a1[4]={1.2,2.4,3.6,4.8};
    vector<double> a2{4};
    a2[0]=1.0/3.0;
    a2[1]=1.0/5.0;
    a2[2]=1.0/7.0;
    a2[3]=1.0/9.0;
    array<double,4> a3={3.14,2.72,1.62,1.41};
    array<double,4> a4;
    a4=a3;
    cout<<"a1[2]:"<<a1[2]<<"at"<<&a1[2]<<endl;
    a1[-2]=20.2;
    cout<<"a1[-2]:"<<a1[-2]<<"at"<<&a1[-2]<<endl;
    return 0;
}

输出的值为: a1[2]:3.6 at 0x28cce8 a1[-2]:20.2 at 0x28ccc8

C头文件一般采用.h后缀
C++头文件一般采用.h后缀,也用.hpp

C程序一般采用.c后缀
C++程序一般采用.cpp后缀

C程序的编译命令是gcc
C++程序的编译命令是g++

C输入输出scanf和printf
C++输入和输出cin和cout

C语言的真假只是用0和非0来代表
c++有bool类型true和false

C语言动态内存管理函数malloc()与free()
C++内存管理函数new与delete

C++具有函数重载功能,即在一个作用范围内,可以有多个名称相同但参数列表不同的一系列函数。在使用重载函数时,同名函数的功能应当相似,不使用相同名称的函数名去实现不相干的功能。

C语言中存在结构体struct,而在C++中对应的是类和对象class与public。class是C++的关键字,用于定义类,就像结构体中的sturct。public也是C++中的关键字。

本文转载于: 版权所有 (c) 2008-2020,码农有道,C语言技术网(www.freecplus.net)