目录
一、第一个C++程序
#include <iostream>
using namespace std;
int main()
{
cout << "hello world" << endl;
return 0;
}
endl的作用和换行符是一样的
二、命名空间
关键字namespace:
定义方式:namespace (){}
使用这个命名空间中的成员:使用作用域限定符::
一个命名空间实际上就是一个域,可以在这个域中定义变量,函数等等。
命名空间的存在的意义:因为C语言中,多人协作开发时,难免会遇到不同开发者的命名方式相同,就会出现重定义的错误提示,这时问题就比较尴尬了,如果项目十分巨大,那么命名修改是十分消耗资源的。那么命名空间就是为了填补C语言的这个坑的。
不同的命名空间,作用域是不同的,两者之间是不会相互影响的,就如同全局定义了一个变量名,在局部中依然可以定义一个相同的变量名。命名空间也是一样的,两个不同的命名空间,可以定义相同标识符的变量或者函数。
他们之间是不会相互影响的。
如果在多个文件中定义相同的命名空间
int a = 0;
int main()
{
int a = 1;
cout << a << endl;//这里是优先访问局部的,再访问全局的.打印 1
cout << ::a << endl;//这里加了作用域限定符::,如果前面是空白的,默认是全局作用域,就会访问全局的, 打印 0
return 0;
}
再者我们再将命名空间用上:
namespace yx
{
int a = 0;
}
int main()
{
cout << ::a << endl;// 会保存,显示全局没有定义‘a'变量
return 0;
}
这时我们是将a定义再‘yx’这个命名空间中,即这个域中,全局是访问不了这个域中的数据的。所以找不到’a‘变量。
namespace yx
{
int a = 0;
}
int main()
{
cout << yx::a << endl;// 打印 0
return 0;
}
这时使用了作用域限定符,就会在'yx'这个指定的作用域下面去寻找’a‘。
命名空间的使用方法:
1、加命名空间名称及作用域限定符
printf("%d\n", N::a)
2、使用using将命名空间成员引入
using N::b;
3、使用using namespace 命名空间名称 引入
using namespace N;
三、输入输出
C++中的输入输出是具有类型自动识别的。在C语言中,输出输入使用scanf,printf函数时,总是需要指定输入输出的格式,否则就会出现输入输出错误。C++中不会。
#include <iostream>
using namespace std;
int main()
{
int a = 0;
double b = 0;
cin >> a >> b;
cout << a << " " << b << endl;
return 0;
}
C++中的输入cout,输出cin
cout:标准输出(控制台);cin:标准输入(键盘)。并且在使用时需要包含<iostream>和std命名空间,很容易可以直到,cout和cin是在std这个标准库命名空间中定义的。
我们可以这样使用:
#include <iostream>
using std::cout;
using std::cin;
int main()
{
int a = 0;
double b = 0;
cin >> a >> b;
cout << a << " " << b << std::endl;
return 0;
}