Linux QT编程
文章目录
- Linux QT编程
- 前言
- 一、 C++的输入输出方式
- 1.cout语法形式
- 2.cin语法形式
- 3.C++之命名空间 namespace
 
前言
学习 C++的面向对象编程,对学习 Qt 有很大的帮助
一、 C++的输入输出方式

 
 效率上,肯定是 C 语言的 scanf 和 printf 的效率高,但是没有 C++中的 cin 和 cout 使用方便。
1.cout语法形式
cout<<x<<endl;
cout<<x<<y; // endl 可流省略,只是一个换行的效果
x 可以是任意数据类型,甚至可以写成一个表达式,这比 C 语言需要指定数据类型方便多了,endl 指的是换行符,与 C 语言的“\n”效果一样。
2.cin语法形式
cin>>x;
cin>>x>>y;
x 可以是任意数据类型。
3.C++之命名空间 namespace
我们已经使用过命名空间,如using namespace std;
 要注意第 1 行,不能写成 iostream.h,有.h 的是非标准的输入输出流,c 的标准库。无.h 的是标准输入输出流就要用命名空间。
 using 是编译指令,声明当前命名空间的关键词。可以从字面上理解它的意思,using 翻译成使用。这样可以理解成使用命名空间 std。因为 cin 和 cout 都是属于 std 命名空间下的东西,所以使用时必须加上 using namespace std;这句话。cin 和 cout 可以写 std::cin 和 std::cout,“::”表示作用域,cin 和 cout 是属于 std 命名空间下的东西,这里可以理解成 std 的 cin 和 std 的 cout
为什么要使用命名空间?
 有些名字容易冲突,所以会使用命名空间的方式进行区分,具体来说就是加个前缀。
 比如C++ 标准库里面定义了 vector 容器,您自己也写了个 vector 类,这样名字就冲突了。于是标准库里的名字都加上 std:: 的前缀,您必须用 std::vector 来引用。同理,您自己的类也可以加个自定义的前缀。但是经常写全名会很繁琐,所以在没有冲突的情况下您可以偷懒,写一句using namespace std;,接下去的代码就可以不用写前缀直接写 vector 了。
下面介绍自定义的命名空间和使用自定义的命名空间
 新建一个目录 02_namespace_example,然后在 02_namespace_example 里新建一个02_namespace_example.cpp 文件
 
 然后输入下面这段代码
#include <iostream>
 using namespace std;
 namespace A
 {
 int x = 1;
 void fun() 
 {
 cout<<"A namespace"<<endl;
 }
 }
 using namespace A;
 int main()
 {
 fun();
 A::x = 3;
 cout<<A::x<<endl;
 A::fun();
 return 0;
 }
第 4 行,自定义了命名空间 A,里面定义了一个变量 x,并将 x 赋值为 1;定义了一个函数fun(),并在 fun()加了输出打印语句 cout<<“A namespace”<<endl;。
 第 11 行,声明使用命名空间 A。
 第 14 行,在第 11 行声明了命名空间 A 后,才能直接使用 fun();否则要写成A::fun();
 第 15 行,将 A 命名空间下的 x 重新赋值为 3。
 第 16 行,打印出 A 命名空间下的 x 的值。
 第 17 行,调用 A 命名空间下的 fun()。
然后编译执行
 
 可以看到fun()打印出字符
 然后cout << A::x<<endl打印出3
 然后调用A::fun()打印出字符

















