`

c++ 模板类特化

 
阅读更多
#include<iostream>

//1. 标准模板类。
    template<typename T1, typename T2>
    class MyClass {
    	public: 
        MyClass(){
			std::cout<<" type 1. \n";		
		}
    };
    //2. 两个模板参数具有相同类型的部分特化类。
    template<typename T>
    class MyClass<T,T> {
        public:
		MyClass(){
			std::cout<<" type 2. \n";		
		}
    };
    //3. 第二个类型参数是int
    template<typename T>
    class MyClass<T,int> {
        public:
		MyClass(){
			std::cout<<" type 3. \n";		
		}
    };
    //4. 两个模板参数都是指针。
    template<typename T1,typename T2>
    class MyClass<T1*,T2*> {
        public:
		MyClass(){
			std::cout<<" type 4. \n";		
		}
    };
    //5. 两个模板参数都是相同类型的指针。
    template<typename T>
    class MyClass<T*,T*> {
        public:
		MyClass(){
			std::cout<<" type 5. \n";		
		}
    };
    //6. 调用示例代码。
    int main() {
        MyClass<int,float> c1;         //调用MyClass<T1,T2>
        MyClass<float,float> c2;    //调用MyClass<T,T>
        MyClass<float,int> c3;      //调用MyClass<T,int>
        MyClass<int*,float*> c4;    //调用MyClass<T1*,T2*> 
        MyClass<int*,int*> c5;      //调用MyClass<T*,T*>
        
        MyClass<int,int> c6;	// 调用MyClass<T,T> or 调用MyClass<T,int> , 报错:[Error] ambiguous class template instantiation for 'class MyClass<int, int>'
        return 0;
    }

分享到:
评论

相关推荐

    数组特化模板类

    ### 数组特化模板类详解 #### 一、引言 在C++编程语言中,模板是一种非常强大的特性,它允许我们编写通用的代码来处理不同类型的数据。然而,在某些情况下,我们可能希望针对特定的数据类型或者数据结构进行优化。...

    C++ 模板类 简单试用

    C++模板类是C++语言中的一个重要特性,它允许我们编写通用代码,这些代码可以用于处理不同类型的数据。模板类的出现使得程序员可以创建泛型(generic)容器、算法和其他工具,无需为每种数据类型单独编写代码。下面...

    模板的 主版本模板类、全特化、偏特化

    ### 模板的主版本模板类、全特化、偏特化详解 #### 一、主版本模板类 ...综上所述,通过主版本模板类、全特化和偏特化等机制,C++ 模板提供了强大的泛型编程能力,使得开发者能够编写出高度可复用且性能优越的代码。

    C++模板特化匹配规则

    C++模板特化匹配规则 C++模板特化匹配规则是指在C++编程语言中,模板的特化过程中,编译器如何选择最合适的模板实例化的规则。这个规则是由C++标准所定义的,目的是为了确保编译器能够正确地选择模板实例化,以便...

    C++ 类模板、函数模板全特化、偏特化的使用

    C++ 类模板、函数模板全特化、偏特化的使用 类模板全特化和偏特化是 C++ 编程语言中非常重要的概念,它们都是模板元编程的基础。类模板全特化和偏特化可以让开发者更好地控制模板的行为,提高代码的灵活性和可维护...

    一个C++模板类开发的STM32程序

    在本文中,我们将深入探讨如何使用C++模板类来开发一个通用的STM32程序,该程序能够有效地处理GPIO、USART和TIMER这三个重要的外设初始化。C++模板类是C++语言中的一个重要特性,它允许我们编写通用代码,实现代码...

    深入分析C++模板特化与偏特化

    模板特化和偏特化是C++模板机制中的重要概念,用于提供针对特定类型或类型特性的定制行为。 1. **模板特化(Template Specialization)** - **概述**:模板特化是当通用的模板无法满足特定类型的特殊需求时,为...

    C++模版特化

    ### C++模板特化概述与详解 在C++编程语言中,模板特化是一种非常重要的机制,它允许程序员为特定类型的模板提供定制化的实现。本文将深入探讨C++中的类模板特化,尤其是针对单个模板参数的不同特化类型:特化为...

    《 C++模板》和《C++模板元编程》两本

    C++模板是C++语言中的一个强大特性,它允许程序员创建泛型代码,即能够处理多种数据类型的代码。模板在C++中分为两种主要类型:函数模板和类模板。函数模板用于定义可以接受不同类型参数的函数,而类模板用于创建...

    C++中有关模板的试题题型练习题

    C++中有关模板的试题题型练习题是C++模板类型题型的综合应用,涵盖了函数模板、类模板的设计方法和实现。下面对标题、描述、标签和部分内容进行详细的解释和分析。 一、函数模板设计 函数模板是C++模板技术的核心...

    C++模板之特化与偏特化详解

    总之,C++模板特化与偏特化是提高代码效率和可维护性的关键工具。它们允许程序员为特定类型提供优化的实现,同时保持代码的模块化和可扩展性。理解和熟练运用这些概念对于编写高效、可靠的C++代码至关重要。

    C++模板中文 PDF 版 不错的c++模板书籍

    《C++模板中文版》是一本深入探讨C++模板编程技术的专业书籍,旨在帮助读者全面理解和掌握这一核心的C++特性。C++模板是C++语言中的一个强大工具,它允许程序员创建泛型代码,实现代码重用和类型安全。在阅读这本书...

    C++模板编程详解:模板函数、类、特化与SFINAE

    内容概要:本文详细介绍了C++中的模板编程技术,包括模板函数、模板类、模板特化、类型推导、SFINAE(Substitution Failure Is Not An Error)以及模板元编程等内容。通过具体的示例代码,帮助读者理解如何编写与...

    函数模板完全特化 C++ Builder 示例

    例如,你可以在`Unit1.cpp`中实现模板类或函数,然后在`Unit1.h`中声明它们,以便在其他地方使用。 `函数模板完全特化.cpp`文件很可能是用来演示如何使用完全特化功能的具体示例。可能包含了一些测试用例,来展示...

    c++模板存储类数据结构

    C++模板分为模板函数和模板类。模板定义通常以`template &lt;typename T&gt;`开头,其中`T`是一个占位符,代表任何数据类型。当我们用具体类型(如`int`、`double`或自定义类)替换`T`时,就形成了模板的实例。例如,我们...

    c++模板书籍

    8. **模板与继承**:模板类可以作为基类,理解派生类如何与模板类交互,以及模板多态的概念。 9. **C++11及更高版本的模板新特性**:包括右值引用、类型推断(auto关键字)、模板别名等,这些都增强了模板的使用和...

    c++模板经典书籍

    - 使用模板类的友元函数时需谨慎,可能会导致意外的访问权限暴露。 - 理解模板的开销,特别是在编译时间和代码大小方面。 通过深入学习这两本书,你将能够熟练地利用C++模板来设计高效、灵活的代码,掌握现代C++...

Global site tag (gtag.js) - Google Analytics