美文网首页
C++函数类模板的具体实践

C++函数类模板的具体实践

作者: 司马捷 | 来源:发表于2016-08-05 19:57 被阅读12次

1.这里有类模板的具体实践.
2.类的继承,基类是模板类,派生类是具体类,和模板类两种情况.

#include <iostream>
using namespace std;

//基类是模板类
template <class T>
class A{
public:
    A(T a){
        this->a  = a;
        
    }
public:
    void printA(){
        cout<<"a :"<<a <<endl;
    }
protected:
    T a;
    
};

/**
 *  从模板类 派生普通类
 模板类派生时,需要具体化模板类,C++ 编译器 需要知道,父类的数据类型是什么样子的
 
 //要知道父类所占的内存大小是多少,只有数据类型固定下来,才知道如何分配内存.
 */
class B :public A<int>{
public:
    B(int a = 10,int b = 20):A<int>(a){
        this->b = b;
        
    }
    void printB(){
        cout<<"a :"<<a<<" b: "<<b<<endl;
    }
private:
    int b;
    
};

//从模板类 派生 模板类
template <typename T>
class C :public A<T> {
private:
    T c;
    
public:
    C(int a = 0):A<T>(a){
        this->c = a;
    }
    void printC(){
        cout<< "C:"<<c<<endl;
    }
};


/**
 *  C++编译器要求具体的类,所以 写成A<int >&a
 *
 *  @param A<int>&a
 */
void UserA(A<int>&a){
    
    a.printA();
}

int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";
    
    // 模板类 本身就是类型化的 具体的类,定义具体的变量.
    A<int> a1(10);
    
    UserA(a1);//调用模板创建的类 需要制定具体的类.
    
    
    B b(1,2);
    b.printB();
    
    C<int>c(10);//模板类 需要具体化的时候,需要定义具体的变量类型.
    c.printC();
    
    
    return 0;
}

相关文章

  • C++函数类模板的具体实践

    1.这里有类模板的具体实践.2.类的继承,基类是模板类,派生类是具体类,和模板类两种情况.

  • 10-C++远征之模板篇-学习笔记

    C++远征之模板篇 将会学到的内容: 模板函数 & 模板类 -> 标准模板类 友元函数 & 友元类 静态数据成员 ...

  • 慕课网-C++远征之模板篇(上)-学习笔记

    C++远征之模板篇 将会学到的内容: 模板函数 & 模板类 -> 标准模板类 友元函数 & 友元类 静态数据成员 ...

  • Geekband C++ 第五周

    概述 C++模板简介 函数模板 C++类模板 操作符重载 泛型编程 容器

  • C++ 模板开发

    C++模板开发分为两类: 模板函数开发 模板类开发 模板函数语法: template是关键字,

  • 14/15

    约束模板友元 模板类的外边定义一个模板函数,在模板类中将模板函数具体化为模板类的友元函数 非约束模板友元 模板类中...

  • C++ STL初识及整理

    概述 简介 简单介绍:C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些...

  • C++类模板

    一、定义 C++ 类模板 定义一个 C++ 类模板和定义一个函数模板类似,可以指定一个或者多个模板参数标识符。在类...

  • [GeekBand] STL与泛型编程-1

    迭代器(iterator)C++中的类模板(class template)与函数模板(funtion templa...

  • 【C++ Templates(11)】深入模板基础

    参数化声明 C++现在支持四种基本模板:类模板,函数模板,变量模板(variable template),别名模板...

网友评论

      本文标题:C++函数类模板的具体实践

      本文链接:https://www.haomeiwen.com/subject/laxksttx.html