- 博客(5)
- 收藏
- 关注
原创 C++之命名空间
文章目录命名空间定义使用命名空间命名空间可以是不连续的 大型程序往往会使用多个独立开发的库,这些库又会定义大量的全局名字,如类、函数和模板等。当应用程序用到多个供应商提供的库时,不可避免地会发生某些名字相互冲突的情况。多个库将名字放置在全局命名空间中将引发命名空间污染(namespace pollution)。 命名空间( namespace)为防止名字冲突提供了更加可控的机制。命名空间分割了全局命名空间,其中每个命名空间是一个作用域。通过在某个命名空间中定义库的名字,库.的作者(以及用户)可以避免全局名字
2020-06-15 19:41:55 127
原创 C++之标准库特殊设施
文章目录tupletuple基本操作bitset类型定义和初始化bitsetbitset的操作 tuple tuple基本操作 typedef decltype (item) trans; // trans 是item的类型. //返回trans类型对象中成员的数量 size_ t sz = tuple_ size<trans>: :value; //返回3 // cnt的类型与item中第二个成员相同 tuple_ element<1, trans>::type cnt = ge
2020-06-14 22:28:19 275
原创 C++之模板与泛型编程
文章目录定义模板函数模板类模板类模板与友元类模板与static模板实例化函数实例化 定义模板 函数模板 template <typename T> int compare (const T &v1, const T &v2){ if (v1 < v2) return -1; if (v2 < v1) return 1; return 0; } 当我们调用一个函数模板时,编译器用函数实参来为我们推断模板实参。 cout<<compare(1,0)&l
2020-06-13 19:42:26 142
原创 C++之重载运算与类型转换
文章目录基本概念输入和输出运算符重载输出运算符重载输入运算符赋值运算符算术和关系运算符算数运算符相等运算符下标运算符递增和递减运算符 基本概念 重载的运算符是具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成。和其他函数一样,重载的运算符也包含返回类型、参数列表以及函数体。 对于一个运算符函数来说,它或者是类的成员,或者至少含有一个类类型的参数 当一个重载的运算符是成员函数时,this绑定到左侧运算对象。成员运算符函数的(显式)参数数量比与运算对象的数量少一个 当我们定义重
2020-06-10 22:49:31 588
原创 c++之拷贝控制
文章目录引言拷贝、赋值与销毁拷贝构造函数 引言 当定义一个类时,我们显式地或隐式地在此类型的对象拷贝、移动、复制和销毁时做什么。一个类通过定义五种特殊的成员函数来控制这些操作,包括: 拷贝构造函数 拷贝赋值运算符 移动构造函数 移动复制运算符 析构函数 拷贝、赋值与销毁 拷贝构造函数 class Foo{ public: Foo(); Foo(const Foo&); }; 拷贝构造函数的第一个参数必须是一个引用类型,虽然我们可以定义一个接受非const 引用的拷贝构造函数,但此参数几乎总
2020-06-09 12:11:45 403
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人