c++入门1(有c语言基础)

1.命名空间

在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存
在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,
以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。

简单来说,就说避免了命名冲突的问题。1写的跟库冲突.2命名互相之间冲突

#include <iostream>
using namespace std:
int main()
{
    cout<<"hello world.">>endl;
    return 0;
}

用最熟悉的代码举例,这是使用c++代码写出的hello,world,其中namespace std:代表C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。std就是一个命名空间。

 1.1命名空间定义

namespace lxy//在工作中一般以自己名字缩写命名
{
    //命名空间可以定义任何变量,函数,类型等等
    int m = 9;
    int add(int x,int y)
    {
        return x + y;
    }
    struct Node
    {
        struct Node*next;
        int val;
    };
}

 1.2命名空间的嵌套定义

namespace lxy
{
    int x = 0;
    int y = 0;
    int ADD(int m,int n)
    {
        return m*n;
    }
    namespace lxy1
    {
        int c = 1;
        int d = 0;
        struct Node
        {
            struct Node*next;
            int val;
        }
    }
}

另外需要提到的是,一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中,使得命名空间的使用更加灵活。

1.3命名空间的使用

 命名空间的使用有三种方式,我们用以下的命名空间举例。

namespace lxy
{
    int m = 9;
    int add(int x,int y)
    {
        return x + y;
    }
    struct Node
    {
        struct Node*next;
        int val;
    };
}

1.3.1加命名空间名称及作用域限定符:: 

int main()
{
    printf("%d\n",lxy::m);//lxy为命名空间的名字,::为作用域限定符
    return 0;
}

1.3.2使用using将命名空间中某个成员引入 

每次指定命名空间很不方便,可以直接展开整个命名空间

int main()
{
    int c = 0;
    lxy::m = 10;
    int p = lxy::add(lxy::m, c);
    printf("%d", p);
    return 0;
}
//总是使用::比较麻烦
using namespace lxy;
int main()
{
    int c = 0;
    printf("%d\n", add(m, c));
}
//直接展开不需要使用::

 1.3.3使用using将命名空间中某个成员引入

 直接全部展开,有冲突风险,指定展开可以解决

using lxy::m;
int main()
{
    printf("%d", m);
}

 2.c++输入输出

hello world程序实现如下

#include<iostream>
using namespace std;
int main()
{
cout<<"Hello world!!!"<<endl;
return 0;
}

1. cout:标准输出对象。cin:标准输入对象,也就是输入输出,必须包含<iostream>头文件以及命名空间std。cout,cin相比scanf和printf,不需要手动控制格式,他们可以自动识别变量类型。

2. endl是特殊c++符号,代表换行,同样包含在<iostream>中。

3. <<是流插入运算符,>>是流提取运算符,之后做详细解释。

#include <iostream>
using namespace std;
int main()
{
	int a = 0;
	double b = 1.232;
	char c = 0;
	cin >> a;
	cin >> c;
	cout << a <<' ' << c << endl;
	cout << b << endl;
	return 0;

}

 std命名空间使用

1.日常练习直接写using namespace std:,很方便

2.但是如果使用using namespace std;,标准库就全部暴露,可能造成命名冲突等问题,所以在大型项目开发中,多使用如std::cout方法或using std::cout等方法。

 

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值