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(这个不确定, 想不起来了)

  • 相关阅读:
    [转]fedora国内源常见配置
    [转]Fedora 添加国内源(sohu, 163)
    keepalived
    lvs详解
    ansible详解
    练习题:计算传入字符串中的【数字】、【字母】、【空格】和【其他】的个数
    面向对象(继承、重写、多态)以及异常处理
    面向对象详解以及封装案例解答
    进程、线程与GIL全局解释器锁详解
    python函数与模块(paramiko、socket模块、文件处理、装饰器、迭代器等)
  • 原文地址:https://www.cnblogs.com/QQ-1615160629/p/5586560.html
Copyright © 2011-2022 走看看