类模板的特化与局部特化
发布日期:2021-05-10 02:08:13 浏览次数:19 分类:精选文章

本文共 4852 字,大约阅读时间需要 16 分钟。

������C++������������������������������������

���C++������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������

������������������������������������������C++���������������������������������������������������������������template���������������������������������������������template���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������

  • ������������������������template������������������
    template 
    class Stack {
    public:
    ...
    }
  • ������������������������������������������������������template������������������
    template 
    Stack
    ::push(T const& elem) {
    ...
    }
  • ���������������������������������������������������������������������������������������������������������������������������������������������������������������
  • ������������������������������������������������

    ������������������������������������������������������������������������������������������������������������������������������������������������C++������������������������������������

  • ������������������ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������std::string������������������������������������������
    template 
    class Stack
    {
    private:
    std::deque
    elems;
    ...
    }
  • ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    1. ������������������������������ ������������������������������������������������������������������������������������������������������������������������������������������������"���������������"���������������������������������������������������������������������������������������������������������������
      template 
      class MyFunc {
      public:
      void doSomething() { ... }
      };
      namespace Detail {
      template
      class MyFuncDetailed : public MyFunc
      {
      public:
      void doSomething() { ... }
      };
      }
      typedef MyFuncDetailed<10> MySpecialFunc;
    2. ������������������������MySpecialFunc ���������������������������������������������������������������������������������������������

      ������������������������������������

      ���������������������������������������������������������������������������������������������������������������������������������������������������������������������

    3. ������������������������

      template 
      class StackGenerics {
      public:
      virtual void push(const T& elem) = 0;
      virtual T pop() = 0;
      virtual T top() const = 0;
      virtual bool empty() const = 0;
      };
    4. ������������������������������������������������������������������

      template 
      class StackImplementation : public StackGenerics
      > {
      public:
      void push(const T& elem) override { elems.push_back(elem); }
      T pop() override { if (elems.empty()) ... ; return elems.back(); }
      ... // ������������������������
      };
    5. ������������������������������������������

      template 
      class StackOptimized
      : public StackGenerics
      {
      public:
      void push(const T& elem) override {
      elems.push_back(elem);
      // ������������������������
      }
      ... // ������������������������
      };
    6. ������������������������������������������������������������������������������std::string���������������������������������������������������������

    7. ������������������������������������������������������������������������������������������������������������������������������������������

      ���������������������������������

      ���������������������������������������������������������������������������������������������������������������������

    8. ������������������������������������������������������������������
    9. ������������������������������������������������������������������������������������
    10. ���������������������������������������������������������������������������
    11. ������������������������������������������������������������������
    12. ������������

      ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    上一篇:类模板缺省模板实参
    下一篇:类模板的初步认识与使用

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月04日 16时50分52秒