C++ 入门 C++ 入门

C++ 入门

 我根据所学,将入门分为十个小部分。如果有秃道同袍发现不对之处,还望多多指正,感激不尽。

1.关键字:对于关键字的学习,是学习编程语言的基础,这些关键字的含义和使用方式组成了基础的语法部分,此处不列举关键字,关键字的学习是贯穿整个语法部分的学习过程的。C++98里是63个关键字,C++11中73个。(C语言中32个关键字)。

2.命名空间:命名空间的引入是为了解决命名冲突。如果把所有变量、函数、类,名字都放在同一作用域,很容易出现傻傻分不清的情况,如果将它们放在不同的作用域,就能避免冲突。比如一个家庭里,兄弟两个的名字是一样的,会出现不知道叫的是谁这样的问题,如果同名的人在不同的地方,就很容易区分了,如西安小C,南京小C,虽然都叫小C,但是能区分叫的是谁。命名空间内的内容都局限于该命名空间。

使用关键字namespace定义命名空间。

复制代码
namespace N1  //N1是命名空间的名字
{
    //在括号内定义的变量、函数、类就是该命名空间的成员
    int a = 10;
    int Add(int left, int right)
    {
        return left + right;
    }

}   //不加;号
复制代码

命名空间可以嵌套定义

复制代码
namespace N2
{
    int a = 5;
    int* a = &a;
    namespace N3  //嵌套的命名空间,命名空间N2内的命名空间N3
    {
        int a = 10;
        int *a = &a;
    }
}
复制代码

同一作用域下的同名命名空间会合并成为一个命名空间,若它们内部存在同名成员则会出现错误。不在同一作用域下的同名命名空间不会合并为一个。

 对于命名空间内的成员的使用, 第一种方式:命名空间的名字+作用域限定符

复制代码
namespace N1 
{
    int a = 10;
    int Add(int left, int right)
    {
        return left + right;
    }
}  

int main()
{
    int x = 11, y = 15;
    int sum;
    sum = N1::Add(x, y);
cout << N1::a << endl; return 0; }
复制代码

第二种方式:使用 using将命名空间内的成员引入

复制代码
using N1::a;
int main()
{
    cout << a << endl;  //输出a
    return 0;
}
复制代码

第三种方式:using namespace N1; 

复制代码
using namespace N1;
// int a   //错误,此时N1的内容相当于全局变量,不可在同一作用域再有同名成员
int main()
{
    //int a = 5; //和N1中的a不是同一作用域,可以使用,且优先使用该局部变量
    cout << a << endl;  //输出a
    cout << N1::a << endl; //有同名局部变量时,用命名空间+作用域限定符来说明使用的是哪个变量
    return 0;
}
复制代码

3.输入与输出:cout<<标准输出(控制台),cin>>标准输入(键盘),使用时要包含头文件<iostream>,以及标准命名空间 std。某些旧版本编译器支持使用<iostream.h>头文件。

复制代码
#include<iostream>
using namespace std;

int main()
{
    cout << "hello world" << endl; //endl为换行
    return 0;
}
复制代码
复制代码
int main()
{
    int a;
    cin >> a; //单个输入a

    int b;
    char c;
    cin >> b >> c;  //连续输入b 和 c

    cout << a << endl;//单个输出a ,endl为换行
    cout << a << " " << b << " " << c << endl; //连续输出a 空格 b 空格 c
     
    return 0;
}
复制代码

有关于输入输出的缓冲区问题此处暂时不讨论。

4.缺省参数:缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该 默认值,否则使用指定的实参。(备胎,车上放一个备用轮胎……)

猜你喜欢

转载自www.cnblogs.com/dsf1785/p/12046741.html