32,初探c++标准库

2021-04-08 13:26

阅读:634

标签:error   技术   数据   main   需要   tac   显示器   ack   编程   

1. 有趣的重载

(1)操作符原义是按位左移重载“

 技术图片

 

重载左移操作符(仿cout类)

 1 #include 2 
 3 const char endl = \n;                  //将换行定义为一个常量
 4 
 5 class Console                           //Console表示命令行对象
 6 {
 7 public:
 8     Console& operator int i)                //赋值重载函数,返回值变为Console&引用 
 9     {
10         printf("%d\n", i);
11         return *this;                            //当前对象自身返回,保证连续传送值
12     }
13 
14     Console& operator char c)                //重载函数
15     {
16         printf("%c\n", c);
17         return *this;
18     }
19     Console& operator const char* s)           //重载函数  
20     {
21         printf("%s\n", s);
22         return *this;
23     }
24     Console& operator double d)                //重载函数
25     {
26         printf("%f\n", d);
27         return *this;
28     }
29 
30 };
31 
32 Console cout;
33 
34 int main()
35 {
36     ////cout.operator37     //cout 38     //cout 39 //    cout 40     
41     cout 1 //避免输入字符\n
42     cout "LOVE.you"  endl;
43 
44     double a = 0.1;
45     double b = 0.2;
46     cout  endl;                            
47 
48 
49     return 0;
50 }

2. C++标准库

(1)C++标准库

  • C++标准库并不是C++语言的一部分

  • C++标准库是由类库和函数库组成的集合,std

  • C++标准库定义的类和对象都位于std命名空间

  • C++标准库头文件不带.h后缀

  • C++标准库涵盖了C库功能

 

(2)C++编译环境的组成

          技术图片 

C语言兼容库:头文件带.h,是C++编译器提供商为推广自己的产品,而提供的C兼容库(不是C++标准库提供的)。

C++标准库:如stringcstdio(注意,不带.h)是C++标准库提供的。使用时要用using namespace std找开命名空间。

编译器扩展库:编译器自己扩展的

 

(3)C++标准库预定义的常用数据结构

  ①

  ②——(C++标准库提供的C兼容库!

【编程实验】C++标准库中的C库兼容(如cstdio)

 1   //不是c语言标准库也不是c++标准库,是c++厂商为了推广自己的产品提高的c兼容库
 2 /*#include 3 #include 4 #include 5 #include*/   
 6 
 7 
 8 //C++标准库提供的C兼容库
 9 #include10 #include11 #include12 #include13 
14 using  namespace std;    //使用标准库要打开,namespace std命名空间
15 
16 int main()
17 {
18     //以下的代码是使用C++标准库提供的C兼容库写的,
19 
20     //从形式上看,与C代码写的完全一样,这就是C++
21 
22     //为C提供了很好的支持的例子!
23 
24     printf("holle world!\n");
25 
26     char* p = (char*)malloc(16);  
27 
28     //strcpy(p, "sjdewhfj");
29 
30     double a = 3;
31     double b = 4;
32     double c = sqrt(a * a + b * b);
33 
34     printf("c=%f\n", c);
35 
36     free(p);             
37 
38     return 0;
39 }

4. C++输入输出

  

 1 #include 2 #include 3 
 4 //基于c++标准库实现,  不使用厂商提供的c语言兼容库
 5 
 6 using  namespace std;
 7 
 8 int main()
 9 {
10     //printf("hello world!");
11     cout "hello world!" //cout为全局对象------输出(重载左移操作符)
12                                                //endl---换行
13 
14 
15     double a = 0;
16     double b = 0;
17 
18     cout "input a :";  
19     cin >> a;                    //cin为全局对象------输入(重载右移操作符)   键盘上的输入传送带a
20 
21     cout "input b :";
22     cin >> b;
23 
24     double c = sqrt(a * a + b * b);   
25     cout "c=" //将字符串  "c=" 和c的结果输出到cout对象上,也就是传送到显示器上,显示器对应的是命令行
26 
27 
28 
29 
30     return 0;
31 }

5. 小结

(1)C++标准库是由类库和函数库组成的集合---------使用c++标准库里的类和函数只需要包含头文件(不带.h),里面包含子库实现了c语言的全部功能

(2)C++标准库包含经典算法数据结构实现

(3)C++标准库涵盖了C库的功能(子库实现)

(4)C++标准库位于std命名空间中

 

32,初探c++标准库

标签:error   技术   数据   main   需要   tac   显示器   ack   编程   

原文地址:https://www.cnblogs.com/liuyueyue/p/13378402.html


评论


亲,登录后才可以留言!