C++发展史、命名空间、输入输出以及缺省参数

一、C++发展史

  • C++是由AT&T Bell(贝尔)实验室的Bjarne Stroustrup博士以及其同时与20世纪80年代初在C语言的基础上开发出来的。与C兼容。C++保留了C语言的所有优点,增加了面向对象的机制。由于C++对C的改进主要是增加了适用于面向对象程序设计的:“类”,故它被Bjarne Stroustrup称为”带类的C”,即“C with classes”。后来为了强调它是C的增强版,用了C语言的自加运算符,叫C++。
  • 以下是C++的历史版本:
  • C++发展史、命名空间、输入输出以及缺省参数_第1张图片
  • C++关键字(C++98)
    C++关键字一共有63个,分别为:
    C++发展史、命名空间、输入输出以及缺省参数_第2张图片

二、命名空间

在C/C++中,大量存在的变量、函数和类的名称都将存在于全局作用域中,可能导致很多冲突。命名空间用来解决命名冲突的问题。

  • 命名空间的定义:namespace关键字
    定义命名空间,需要使用namesapce关键字,后面跟命名空间的名字:
namespace N1
{
    //1.变量
    int a;
    //2.函数
    int Add(int a,int b)
    {
        return a+b;
    }
    //3.命名空间(可嵌套)
    namespace N2
    {
        int b;
        int Sub(int a,int b)
        {
            return a-b;
        }
    }
}

注意点:1、在同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
2、一个命名空间就定义了一个新的作用域,命名空间中所有的内容都局限于该命名空间中。

  • 命名空间的用法:三种方式
//1、加命名空间名称及其作用域限定符
int main()
{
    printf("%d\n",N1::a);
    printf("%d\n",N1::N2::b);//嵌套
    return 0;
}
//使用using将命名空间中成员引入
using N1::b;
int main()
{
    printf("%d\n",b>;
    return 0;
}
//3、使用using namespace命名空间名称引入
using namespace N1;
int main()
{
    Add(10,20);
    return 0;
}

三、C++输入输出

//1.C++使用cout进行输出(到控制台),使用cin进行输入(来源于控制台),C的输出输入方式也可以使用;
//2.使用cout输出和cin输入时,必须包含头文件;
#include
#include
//3.cout和cin包含在标准命名空间中,使用时必须包含该命名空间
using namespace std;

int main()
{
    int a;
    double d;
    //4.输入输出更方便,不需要增加数据格式控制;
    //cin输入运算符:可以自动识别数据类型
    cin >> a;
    cin >> d;//输入两个以上的数据时可以用换行隔开,也可以用空格隔开
    //cout输出运算符:
    cout << "change myself" << endl;
    //也可以这样引用命名空间,但没必要
    std::cout << "hahaha" << endl;
    //cout能自定义输出的格式,包括左对齐、右对齐、数据类型、进制转换等,不需要进行数据格式控制
    //例如:
    cout << hex << a << endl;//以十六进制输出a,即a输入10,输出为字符a

    system("pause");
    return 0;
}

四、缺省参数

缺省参数是声明或定义函数时,为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。


#include                                                                              
using namespace std;
void TestFunc1(int a = 1)
{
    cout << a << endl;
}
 //1.全缺省参数
void TestFunc2(int a = 1, int b = 2, int c = 3)
{
    cout << a << " " << b << " " << c << endl;
}
 //2.半缺省参数
void TestFunc3(int a, int b, int c = 0)
{
    cout << a << " " << b << " " << c << endl;
}
int main()
{
     cout<<"Change You!"<cout<<12<<"."<<12.34<//缺省参数
     TestFunc1();
     TestFunc1(10);
     //1.全缺省参数
     TestFunc2(10,20,30);//传参时,使用参数默认值
     TestFunc2(10,20);
     TestFunc2(10);
     TestFunc2();//没有传参时,使用参数默认值
     //2.半缺省参数:注意:约定从右往左赋缺省值,不能隔着给出
     TestFunc3(10,20,30);
     TestFunc3(4,5);

     return 0;
}
//补充:
//1.缺省参数不能同时在函数声明和定义中出现,只能二者选择其一(最好在设置在函数声明中,可以直观的看出该函数是否设定缺省值)
//2.缺省值必须是常量或全局变量
//3.C语言不支持

你可能感兴趣的:(C++)