using namespace std;
这是引用std命名空间,命名空间是C++用来避免命名冲突的机制,相当于一个作用域,在这个作用域中,所有标识符(这个你应该知道)都是唯一的,不同命名空间的名字作用域也不相同,这样就保证了不同命名空间相互不影响,即便在两个命名空间的标识符是相同的,也不会产生冲突
举一个例子,比如在某个学校的一年级有个同学叫小明,二年级也有个同学叫小明,那么如果这两名同学在一个年级,大家就分不清老师叫小明时是在叫哪个,这在编程中是不允许的,当他们分属不同年级时,老师叫的时候加上加上年级的限定,一年级的小明,二年级的小明,大家就都能分清楚,这里,一年级和二年级就相当于命名空间,小明就是标识符,两个命名空间里面都有。(小明有点多)。
std是一个C++标准库的命名空间,除此之外,我们可以定义自己的命名空间,其格式如下:
namespace namespace_name
{
//变量声明;
//函数声明;
//类型定义;
}
namespace是关键字,namespace_name是表示命名空间的标识符,它唯一标识了命名空间,这个名称会附加与该命名空间中声明的所有实体,大括号限定了命名空间namespace_name的作用域。
楼主可以自己试着写一个自己的命名空间,比如myown,并实现对成员的操作,比如成员max()求最大值,int变量a,b,
命名空间的成员可是变量,函数,也可是类对象,访问通常需要域作用符::来访问。如myown::max(int a,int b),myown::a和myown::b
至于return ,我不知道你哪里不理解,这是在面向过程语言中就有的,你学习c++,之前一定接触过面向过程的编程语言,比如C语言,我在这里简单说一下,
如果你的函数产生调用关系,并且被调用函数需要向主调函数传递运算结果,比如下面的代码:
int getClass()
//此函数为Student类的成员函数之一
{
return class;
//返回的数据类型要和函数类型保持一致,若函数类型为int,返回值也应该是int
}
在主函数中调用:
Student student;
student.setClass(5);
cout<<"该学生所在班级为"<<student.getClass<<endl;
//此处调用上面的函数,得到的值为被调函数返回的class值
另外,如果函数为void型,则无返回值,此时,没有需要传递给主调函数的值,也没有return的语句。
主函数必须有返回值,void型的主函数编译不会报错,但是理论上是错误的,最少都应该返回一个值,表示程序执行的状况等,需要养成良好的编程习惯