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;
    }
  • 相关阅读:
    POJ 1251 Jungle Roads
    1111 Online Map (30 分)
    1122 Hamiltonian Cycle (25 分)
    POJ 2560 Freckles
    1087 All Roads Lead to Rome (30 分)
    1072 Gas Station (30 分)
    1018 Public Bike Management (30 分)
    1030 Travel Plan (30 分)
    22. bootstrap组件#巨幕和旋转图标
    3. Spring配置文件
  • 原文地址:https://www.cnblogs.com/wangkeqin/p/9339862.html
Copyright © 2011-2022 走看看