首页 > 编程语言 >C++智能指针简单实现

C++智能指针简单实现

时间:2023-02-27 10:33:06浏览次数:36  
标签:__ SmartPointer Temp sp C++ 智能 func printf 指针

#include <stdio.h>
#include <stdlib.h>
class Temp
{
public:
    Temp() {
        printf("%s:构造函数\n", __FUNCTION__);
    }
    ~Temp()
    {
        printf("%s:析构函数\n", __FUNCTION__);
    }
    void func() 
    {
        printf("%s\n", __FUNCTION__);
    }
private:

};

template <class T>
class SmartPointer
{
public:
    SmartPointer(){}
    SmartPointer(T* data)
    {
        p = data;
    }
    ~SmartPointer() {
        delete p;
    }
    //重载->运算符
    T* operator->()
    {
        return p;
    }
    T& operator*()
    {
        return *p;
    }
private:
    T* p;
};

 

int main(int argc, char* argv[])
{
    SmartPointer<Temp> sp(new Temp);
    //sp.operator->()->func();
    sp->func();
    (*sp).func();

    getchar();
    return 0;
}

 

标签:__,SmartPointer,Temp,sp,C++,智能,func,printf,指针
From: https://www.cnblogs.com/caiyingyong/p/17158777.html

相关文章

  • C++
                     ......
  • 登峰造极,师出造化,Pytorch人工智能AI图像增强框架ControlNet绘画实践,基于Python3.10
    人工智能太疯狂,传统劳动力和内容创作平台被AI枪毙,弃尸尘埃。并非空穴来风,也不是危言耸听,人工智能AI图像增强框架ControlNet正在疯狂地改写绘画艺术的发展进程,你问我绘画行......
  • C++面对对象:实现Fraction类,explicit ctor
    1//Fraction.h2#pragmaonce3#include<iostream>4#include<string>56usingnamespacestd;78classFraction;9int__gcd(int,int);1011......
  • C++中的两种取反(!和~)
    在做算法题时经常用到这两种取反操作,下面对两种取反进行介绍和区别~主要用于按位取反,字面意义就是把这个数字的二进制每一位都取反,例如将(10001)按位取反有~(10001)=(01110)=(11......
  • 移动零(快排思想,快慢指针法)
    题目:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。示例1:输入:nums......
  • c++中sort使用
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>usingnamespacestd;#include<algorithm>inta[100010],n;intmain(){scanf("%d",&n);for(inti=0;i<......
  • C++ 以及keil qt等常见软件注释 @brief @param @return
    brief 英[briːf] 美[briːf]adj. 短时间的;短暂的;简洁的;简单的;过短的;暴露身体的;n. 任务简介;指示;(向辩护律师提供的)案情摘要;委托辩护;辩护状;@brief......
  • 基于 Solidity 的智能合约详解
    @目录环境合约代码详解环境https://remix.ethereum.org/基于Remix编写,Remix是一种基于Web的集成开发环境(IDE),专门用于开发和部署以太坊智能合约。Remix具有代码编辑器......
  • C++快速求解最大公因数 | gcd库函数
    1.介绍gcd全称:greatestcommondivisor使用__gcd(intx1,intx2)函数可以高效、迅速得到x1,x2两个数的最大公因数。省去手写底层代码,专注代码逻辑的研究 2.注......
  • Turtlebot4入门教程-演示-创建节点(C++)
     说明:本教程将介绍创建ROS2包和用C++编写ROS2节点的步骤。有关Python示例,请单击此处。这些步骤与 ​​ROS2教程类似​​​,但侧重于与TurtleBot4的交互。​​......