zoukankan      html  css  js  c++  java
  • Effective C++规定45 额外的代码

    这部分是额外的代码博客,关键45术语思想已经实现。

    #include<iostream>
    using namespace std;
    
    template<typename T>
    class SharedPtr
    {
    public:
        template<typename U>
        SharedPtr(const SharedPtr<U>&u) :ptr(u.get())
        {
            count++;
        }
        SharedPtr(T*ptr_):ptr(ptr_){}
        T*get()const{ return ptr; }
        ~SharedPtr()
        {
            if (1 == count)
            {
                count--;
                delete ptr;
                ptr = NULL;
            }
        }
    private:
        T* ptr;
        int count;
    
    };
    
    class A{};
    class B :public A{};
    class C{};
    
    
    
    int main()
    {
        SharedPtr<B> b1(new B());
        SharedPtr<C> c1(new C());
        SharedPtr<A> a1 = b1;
        SharedPtr<A> a2 = c;//不能通过编译
    
        return 0; 
    
    }
  • 相关阅读:
    将数据绑定通过图表显现
    d3.js初识
    Josn
    d3-tip.js
    Java知识点总结
    Javascript的学习
    Java的多线程学习
    day11
    day10
    day09
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4593240.html
Copyright © 2011-2022 走看看