zoukankan      html  css  js  c++  java
  • C++关键字之using的的用法总结

    C++ using用法总结

    1)配合命名空间,对命名空间权限进行管理

    using namespace std;//释放整个命名空间到当前作用域
    using std::cout;    //释放某个变量到当前作用域

    2)类型重命名

    作用等同typedef,但是逻辑上更直观。

    #include <iostream>

    using namespace std;

    #define DString std::string //! 不建议使用!

    typedef std::string TString; //! 使用typedef的方式
    using Ustring = std::string; //!使用 using typeName_self = stdtypename;

    //更直观
    typedef void (tFunc*)(void);
    using uFunc = void(*)(void);
    int main(int argc, char *argv[]) { TString ts("String!"); Ustring us("Ustring!"); string s("sdfdfsd");

       cout<<ts<<endl; cout
    <<us<<endl; cout<<s<<endl; return 0; }

     

    3)继承体系中,改变部分接口的继承权限。

    有这样一种应用场景,比如我们需要私有继承一个基类,然后又想将基类中的某些public接口在子类对象实例化后对外开放直接使用。如下即可

    #include <iostream>
    //#include <array>
    #include <typeinfo>
    
    
    using namespace std;
    
    class Base
    {
    public:
        Base()
        {}
        ~Base(){}
    
        void dis1()
        {
            cout<<"dis1"<<endl;
        }
        void dis2()
        {
            cout<<"dis2"<<endl;
        }
    };
    
    class BaseA:private Base
    {
    public:
        using Base::dis1;//需要在BaseA的public下释放才能对外使用,
        void dis2show()
        {
            this->dis2();
        }
    };
    
    int main(int argc, char *argv[])
    {
    
        BaseA ba;
        ba.dis1();
        ba.dis2show();
    
        return 0;
    }
  • 相关阅读:
    zabbix真的很简单 (安装篇)
    flask 快速入门01 之 `Hello World!`
    结对编程作业
    XNA学习笔记(一)
    Ambari API 验证方式
    浅析Kerberos原理,及其应用和管理
    nginx进程属主问题讨论
    编码规范
    用samba访问windows目录[浙大嵌入式系统]
    在树莓派上格式化U盘[浙大嵌入式系统]
  • 原文地址:https://www.cnblogs.com/wangkeqin/p/9339862.html
Copyright © 2011-2022 走看看