1,.命名空间
实际上就是一个由程序设计者命名的内存区域,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其他全局实体分隔开来。
看例子:
namespace lll { int a; int b; } int main() { std::cout << "hello world" <<std:: endl; system("pause"); return 0; }
namespace 是定义命名空间所必须写的关键字,lll就是我自己建立的一个命名空间的名字;在花括号内是声明块,在其中声明的实体称为命名空间成员,命名空间内包含变量a和b,如果lll 建立在全局变量区,那么变量a和变量b均为全局变量,只不过将他放在了命名空间内;注意使用时不要重定义。花括号内不止可以定义变量,还可以定义很多东西。
*类
*函数
*构造函数
*结构体
*常量等等;
那么怎么使用命名空间内的元素呢?有两种方法。
第一是在使用时加上命名空间的名字;比如
lll::a,lll::b;
lll是命名空间的名字,::叫做域作用符;在使用时不可省略。
第一种方法在多次使用lll这个空间时,就会每次都需要拼写一边。无形降低了效率;那么还有一种方法,
在前面加上 use namespace lll;即可;
c++中提供了一些命名空间,比如std标准命名空间;包含在标准输入输出库<iostream>中;
2.C++基本的输入输出
c++中其实并没有定义任何的输入输出语句,而是包含了一个全面的标准库来提供IO机制,其中有一个iostream库,其中包含了两个基础类型istream和ostream,分别表示输入和输出流。
其中又各自包含了对象cin和cout,称为标准输入和标准输出。还有cerr用来输出警告和错误,称为标准错误。
c++可以认为是从语言的升级版,所以c中的特性c++都支持,其中就包括C语言中的输入输出。比如printf函数和scanf函数在c++中同样可以使用。但C语言中,使用printf和scanf就必须指明数据类型,不免显得有些麻烦,在c++中就简化了这种操作。
c++中使用对象cin和cout作为输入输出语句加上输入输出操作符"<<"和">>"来实现,不必指明数据类型,比如
namespace lll { int a=10; int b=20; } int main() { std::cout << "hello world" <<std::endl<<lll::a<<" "<<lll::b<<" "<<std:: endl; system("pause"); return 0; }
输出结果为:
从上面的例子可以看出在c++中使用cout输出不需要注明数据类型,程序会根据数据本身的类型来输出。但这种输出却在输出带精度的浮点数时会很麻烦。在这种情况下我们就直接使用prinf会比较方便一些。
#include <iostream> using namespace std; int add(int a, int b) { return a + b; } float add(float a, float b) { return a + b; } int main() { int ret = add(1, 2); float resul = add(1.0f, 3.0f); cout << ret << " " << resul << endl; system("pause"); return 0; }