zoukankan      html  css  js  c++  java
  • C++ 课堂笔记

    1.纯虚函数

     virtal void function() = 0;

    不能实例化, 因为此函数没有实体, 用于派生有实体的类

    所以不能实例化含有纯虚函数的class

    2.静态多态

    3.模板(动态多态) 泛型编程

    函数模板

    template<typename T>

    T maximun(T n1, T n2)

    {

      if(n1 > n2)

        return n1;

      return n2;

    }

    void main()

    {

      int a1 = 12, a2 = 22;

      cout << maximun(a1, a2) << endl;

    }

    若类型不同

    template<typename T1, typename T2, ......>

    模板不会造成程序运行变慢, 生成的执行代码(obj)长度并不会比不用木板短

    模板不会出现在执行代码中<编译器>

    如果模板放在头文件中,可以增加程序的可移植性

    补充一个冒泡排序(为什么之前我写的冒泡小飞兔说是选择排序.....)

    template<typtname T>

    void bubble_sort(T arr[], int n)

    {

      for(int i = 0; i < n - 1; j++)

        for(int r = 0; r < n - 1 - i; r++)

          if(arr[i] > arr[r]) swap(arr[i], arr[r]);

    }

    #if!defined ..

    #define ..

    类模板

    引例:栈(stack) FILO(first in last out) 先进后出

    栈操作:

    pop 出栈

    push 入栈

    top 访问栈顶元素

    实现:

    #if!defined STACK_T_H
    
    #define STACK_T_H
    
    template <typename T>
    
    class stack
    
    {
    
    public:
       stack(int n = 10);
       ~stack();
       bool pop(T & data_item);
       bool push(const T& data_item);
       inline int_number_stacked() const;
       inline int_stack_size() const;
    private:
       int max_size;
       int top;
       T* data;             
    };

    模板类的函数实现:
    template <typename T>

    stack<T>::stack(int n)

    {

      

    }

    template <typename T>

    bool stack<T>::push(const T& date_item)

    {

      

    }

    模板类实例化:

    stack <int> v_name;

    手动给类型参数

    stl 中一些模板

    map, queue, list, pair, stack, set(这个不确定, 想不起来了)

  • 相关阅读:
    Iview多行表单增删、表单校验
    Linux常用命令+Git命令
    前端架构师图谱
    第八章学习心得
    第七章学习心得
    第6章学习心得
    第5章学习总结
    第四章心得体会
    第三章学习心得
    第二章学习心得
  • 原文地址:https://www.cnblogs.com/QQ-1615160629/p/5586560.html
Copyright © 2011-2022 走看看