一、C++程序的组成部分
包括头文件,名字空间,主函数。
实现在屏幕上输出相应信息,用到C++系统的输出流函数,所以需要在声明区书写该函数所在的头文件:
使用命名空间:using namespace std; C++库中的类和函数都在命名空间里std中声明,因此在用户编写程序时只要用到C++系统库的函数或类,就必须使用这条语句。
注意:
注意:
3.主函数:有且只一个main()的主函数;
int main()
{
return 0;
}
4.可以使用/* */(多行)或//(单行)进行程序注释。
5.使用cout函数进行输出,与运算符<<配合使用。作用是将运算符<<右侧双引号内的字符串如”Hello C++!”输出到系统指定的设备(显示器中)。
二、什么是命名空间
命名空间(namespace)是一种特殊的作用域,由程序设计者命名的内存区域,可以将不同的标识符集合在一个命名作用域内,解决程序中命名冲突的问题。
//1.cpp
#include <iostream>
using namespace std;
int a=1;
int main()
{cout<< a<<endl;
return 0;
}
//2.cpp
int a=2;
该程序由两个文件1.cpp和2.cpp组成,两个文件都定义全局变量a,发生命名冲突。编译时程序无法通过,并返回出错信息: 2.obj : error LNK2005: "int a" already defined in 1.obj
在C++语言中,命名空间使用关键字namespace来声明,并使用{ }来界定命名空间的作用域, 命名空间定义格式如下:
namespace 命名空间标识符名
{ 成员的声明; //类、对象、函数、变量及结构体等 }
namespace ABC
{ int count;
typedef float book_price;
struct student {
char *name; int age;
};
int add(int x,int y){return x+y;}
int min(int x,int y);
}
1.命名空间标识符名在所定义的域中必须是唯一的;
2.命名空间作用域不能以分号结束;
3.命名空间可以在全局作用域或其他作用域(另一个命名空间)内部定义,但不能在函数或类内部定义;
4.命名空间和类、结构体类似,但不能实例化,只能引用;
5.命名空间的成员都是公有的,不能对它们私有化;
6.一般在命名空间中声明函数,而在命名空间之外定义函数;
7.命名空间可以嵌套,例如
namespace AA
{
namespace BB
{
int x=2;
}
}
int main()
{
cout<< AA::BB::x<<endl;
return 0;
}