C++ 泛型编程,函数模板和类模板

帮助中心

C++ 泛型编程,函数模板和类模板

2023-11-29 08:00


本文章介绍了C++泛型编程中的函数模板和类模板的基本概念和用法。

                                            
        

函数模板

函数模板是一种通用的函数定义,可以用于多种数据类型。通过使用模板参数,我们可以编写一次函数,然后根据不同的参数类型生成多个特定类型的函数。

例如,下面是一个简单的函数模板,用于计算两个数的最大值:


        template 
        T Max(T a, T b) {
            return (a > b) ? a : b;
        }
    

我们可以使用这个函数模板来比较不同类型的数据,例如:


        int intMax = Max(3, 7);  // 使用整数参数
        double doubleMax = Max(3.14, 7.68);  // 使用双精度浮点数参数
    

类模板

类模板允许我们定义通用的类,可以在实例化时使用不同的数据类型。类模板的语法与函数模板类似,只是在类的定义之前加上template关键字和模板参数。

例如,下面是一个类模板,用于表示二维向量:


        template 
        class Vector2D {
        private:
            T x;
            T y;
        public:
            Vector2D(T xVal, T yVal) : x(xVal), y(yVal) {}
        
            T getX() {
                return x;
            }
        
            T getY() {
                return y;
            }
        };
    

我们可以使用这个类模板来创建不同类型的二维向量对象,例如:


        Vector2D intVector(3, 4);  // 使用整数类型创建向量对象
        Vector2D doubleVector(1.5, 2.8);  // 使用双精度浮点数类型创建向量对象
    

总结

通过使用函数模板和类模板,我们可以编写通用的代码,适用于多种数据类型。这种泛型编程的特性使得C++具有更高的代码复用性和可扩展性。


标签:
  • C++
  • 泛型编程
  • 函数模板
  • 类模板