美文网首页
C++语言基础(04)

C++语言基础(04)

作者: MrLuo | 来源:发表于2017-12-28 15:24 被阅读7次
1.模板函数(泛型)

由下面函数发现,两个函数业务逻辑一样,数据类型不一样

void myswap(int& a,int& b){
    int tmp = 0;
    tmp = a;
    a = b;
    b = tmp;
}

void myswap(char& a, char& b){
    char tmp = 0;
    tmp = a;
    a = b;
    b = tmp;
}

于是:

template <typename T>
void myswap(T& a, T& b){
    T tmp = 0;
    tmp = a;
    a = b;
    b = tmp;
}

void main(){
    //根据实际类型,自动推导
    int a = 10, b = 20;
    myswap<int>(a,b);
    cout << a << "," << b << endl;

    char x = 'v', y = 'w';
    myswap(x, y);
    cout << x << "," << y << endl;

    system("pause");
}

模板类

//模板类
template<class T>
class A{
public:
    A(T a){
        this->a = a;
    }
protected:
    T a;
};

//普通类继承模板类
class B : public A<int>{
public:
    B(int a,int b) : A<int>(a){
        this->b = b;
    }
private:
    int b;
};

//模板类继承模板类
template <class T>
class C : public A<T>{
public:
    C(T c, T a) : A<T>(a){
        this->c = c;
    }
protected:
    T c;
};

相关文章

  • C++语言基础(04)

    1.模板函数(泛型) 由下面函数发现,两个函数业务逻辑一样,数据类型不一样 于是: 模板类

  • No.001 Arduino 基础语法

    0 |前言 Arduino编程语言是建立在C/C++语言基础上的,即以C/C++语言为基础,把AVR单片机(微控制...

  • 零基础怎样学习好C/C++?

    C++比C多了两个加号,C++比C语言难学吗?如何入门C++?C++基础入门学什么?后期开发学什么? C++语言诞...

  • 重读经典系列之《C++ Primer Plus》前3章

    C++融合了3种不同的编程方式: C语言代表的过程性语言、C++在C语言基础上添加的类代表的向对象语言、C++模板...

  • NDK系列04—— C++ 语言基础知识巩固

        这是NDK系列的第三章,将会学习C++语言的基础知识。C++是在C语言的基础上演变而来的一种语言,可以理解...

  • C++ 基础(一)

    目录 C++ 基础(一) C++面向对象基础(二) 前言 自工作以来接触了 OC、Swift、RN、C 语言,简单...

  • GeekBand面向对象高级编程(上)第一周

    C++简介: C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛;C++支持多种编程范式 ...

  • 软考C++基础知识

    C++语言是从C语言发展演变而来的,C++包含了整个C,C是建立C++的基础。C++包括C的全部特征、属性和优点,...

  • C++ 总结 (一、基础篇)

    C++ 总结 (一、基础篇) 官网 C++ 完全兼容C语言,但是有自己的语法特点,本文总结了C++的基础知识。记录...

  • 1 零基础如何学习C++语言

    如何零基础学习C++语言,或者会JAVA,C,C#转C++语言呢? 一 熟练掌握Microsoft Visual ...

网友评论

      本文标题:C++语言基础(04)

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