zoukankan      html  css  js  c++  java
  • C++模板特化

    C++模板十分强大和和复杂,下面例子仅说明模板默认类型和模板特化

    template<typename T=char>
    class  Base
    {
    public:
        void print()
        {
            cout<<"hello"<<endl;
        }
    };
    
    template<>
    class Base<char>
    {
    public:
        void print()
        {
             cout<<"world"<<endl;
        }
    };
    
    int main()
    {
        Base<int> tmp;
        tmp.print();
        Base<> tmp1;
        tmp1.print();
        Base<char> tmp2;
        tmp2.print();
        return 0;
    }

    输出:

    hello

    world

    world

    结论:

    在你创建模板类的对象的地方,编译器会根据你传入的模板参数来实例化模板,如果有默认类型参数,就可以不传,如tmp1;

    当编译器准备好所有的类型参数后,它会优先选择符合用户自定义特化模板来进行实例化,否则使用原始模板进行实例化。

  • 相关阅读:
    线程同步技术
    线程调用
    进程与线程
    网络配置
    vi
    文件系统
    系统管理命令
    Linux常用命令
    Shell编程
    新版chrome touch警告处理办法
  • 原文地址:https://www.cnblogs.com/guoxiaoqian/p/4357300.html
Copyright © 2011-2022 走看看