Update README.md

This commit is contained in:
xliu79 2020-07-21 00:06:53 +08:00 committed by GitHub
parent 282e93f21a
commit 94b367df13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,13 +1,12 @@
# using那些事
## 关于作者
# Story About using
## About Author
个人公众号:
![](../img/wechat.jpg)
## 基本使用
## Basic use
局部与全局using具体操作与使用见下面案例
Local and global using. See the following cases for specific operation and use
```c++
#include <iostream>
@ -28,9 +27,9 @@ namespace ns1 {
namespace ns2 {
#ifdef isNs1
using ns1::func; /// ns1中的函数
using ns1::func; /// function in ns1
#elif isGlobal
using ::func; /// 全局中的函数
using ::func; /// global function
#else
void func()
{
@ -48,8 +47,8 @@ int main()
return 0;
}
```
完整代码见[using_global.cpp](using_global.cpp)
## 改变访问性
Code[using_global.cpp](using_global.cpp)
## Changing accessibility
```
class Base{
@ -67,7 +66,7 @@ protected:
```
类Derived私有继承了Base对于它来说成员变量n和成员函数size都是私有的如果使用了using语句可以改变他们的可访问性如上述例子中size可以按public的权限访问n可以按protected的权限访问。
完整代码见[derived_base.cpp](derived_base.cpp)
Code[derived_base.cpp](derived_base.cpp)
## 函数重载
在继承过程中派生类可以覆盖重载函数的0个或多个实例一旦定义了一个重载版本那么其他的重载版本都会变为不可见。
@ -107,9 +106,10 @@ int main()
如上代码中在派生类中使用using声明语句指定一个名字而不指定形参列表所以一条基类成员函数的using声明语句就可以把该函数的所有重载实例添加到派生类的作用域中。此时派生类只需要定义其特有的函数就行了而无需为继承而来的其他函数重新定义。
完整代码见:[using_derived.cpp](using_derived.cpp)
## 取代typedef
## Replace typedef
The syntax of typedef a B is often used in C, which defines B as type A, that is, giving type a an alias B
C中常用typedef A B这样的语法将B定义为A类型也就是给A类型一个别名B
对应typedef A B使用using B=A可以进行同样的操作。
@ -117,4 +117,4 @@ C中常用typedef A B这样的语法将B定义为A类型也就是给A类
typedef vector<int> V1;
using V2 = vector<int>;
```
完整代码见[using_typedef.cpp](using_typedef.cpp)
Code[using_typedef.cpp](using_typedef.cpp)