进入c++的世界

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012142460/article/details/84963326

闲话少说,学习一下面向对象的编程,之前多次学习c++,多次半途而废。希望这一次能坚持下来。每天能有一点更新。

先来一段简单的代码,和c语言是不是有一些不一样呢。对于iostream,namespace,cout,endl.我们一个一个解释

#include <iostream>                                                                                                                                              
int main()
{
        using namespace std;
        cout << "hello world";
        cout <<endl;
        cout <<"i am coming, c++" << endl;
        return 0;
}

c++的头文件与c的头文件相比,去掉了扩展名.h。要使用cout,cin进行输入输出的程序必须包含iostream文件。除了扩展名的区别外,更大区别则是c++中的名称空间的概念。

名称空间

        名称空间支持是c++中一项较新的特性,他是为了使编写将多个厂商已有的代码更简单而设计的。假如有封装好的两个产品,都包含一个名称为wanda()的函数,这样,在使用这个函数的时候,编译器就不知道使用那个版本。名称空间让厂商可以将产品封装在一个叫做名称空间的单元中,这样就可以使用名称空间的名称来指出想要使用哪个厂商的产品。microsoft可以将其定义放到一个名为Microsoft的名称空间,苹果公司将其定义放到一个名称Apple的名称空间中。这样wanda()函数的全称就是Microsoft::wanda();苹果公司的版本则是Apple::wanda().程序就可以使用名称空间来区分不同的版本了。

Microsoft::wanda(“hello Microsoft”);

Apple::wanda(“hello Apple”);

另外名称空间只有在头文件没有.h的扩展名时才有。有的老版本的c++还是有.h的扩展名的。

在上面的例程代码中,在iostream中的定义的,用于输出的cout变量实际上是std::out,而endl是std:endl.因此可以省略using编译指令,以下面这种方式进行编码

#include <iostream>                                                                                                                                              
int main()
{
//      using namespace std;
        std::cout << "hello world";
        std::cout <<std::endl;
        std::cout <<"i am coming, c++" << std::endl;
        return 0;
}

使用using编译器指令,可以指定使用哪一个名称空间,而不必添加前缀。

using namespace std

这个using编译器指令使得std名称空间中的所有名称都可以使用。这是一种偷懒的方法,更好的方法是,只使用所需的名称即可。如

using std::cout
using std:endl

用这些编译器指令后,在使用cout,endl,不用加std的前缀

扫描二维码关注公众号,回复: 5555444 查看本文章
#include <iostream>                                                                                                                                              
int main()
{
//      using namespace std;
        using  std::cout;
        using  std::endl;
        cout << "hello world";
        cout <<endl;
        cout <<"i am coming, c++" << endl;
        return 0;
}

上面几种case输出的结果是

代码中的cout,endl是什么东东呢?

简单说,cout相当于c语言中我们常用的printf

在代码:

cout << "hello world"

cout是一个对象

<< 是一个操作符

hello world是字符串

“<<” 刚看到的时候,咦,这不是左移吗?的确它确实是左移的意思,但是在这里是一个操作符,可以理解成数据的流向,表示数据流向了cout,也就是输出到了屏幕上。我们还会看到cin >> value,表示将屏幕上的输入赋值给value变量。>> 它既可以作为左移,又可以作为指向流向的操作符,这就是也给操作符重载的例子。通过重载,通过一个操作符将有不同的含义。编译器通过上下文判断操作符的具体含义。c语言中其实也有类似的例子,例如 &既可以表示AND为操作,也可以表示取地址。c++扩展了操作符重载的概念,用户自己也同样可以定义操作符的含义。

endl是换行的意思,相当于\n,当然,我们是可以继续使用\n这种换行的方式的。

猜你喜欢

转载自blog.csdn.net/u012142460/article/details/84963326
今日推荐