zoukankan      html  css  js  c++  java
  • Pointer

    1. const pointer

    pointer to const -> 指向的数据不能被修改

    const pointer -> 指针的地址不能被修改

    ====================================================

    int a = 3;

    int b = 4;

    // read from right to left
    const int * p1 = &a; // a pointer to a const int
    int * const p2 = &b; // a const pointer to an int

    *p1 = b; // not OK
    p1 = &b; // OK
    a = 4; // OK: *p1 = 4

    p2 = &a; // not OK
    *p2 = a; // OK

    ===================================================

    2. smart pointer

    A smart pointer is an abstract data type that stimulates a pointer with additional funationality, such as auto memory deallocation, reference counting, etc. In practise it could be a wrapper around of a regular pointer and forwards all meaningfull operations to the pointer

    The simplest smart pointer is autr_ptr which are defined in header file <memory>

    ======================================

    template <class T> auto_ptr {

    public:
    explicit auto_ptr(T* p): auto_ptr(p){}
    ~auto_prt() {delete ptr;}
    T& operator*(){return *ptr;}
    T* operator->(){return &ptr;}
    private:
    T* ptr;
    // other functionalities...
    };

    ====================================

  • 相关阅读:
    ideaj项目切换不同版本的jdk
    物理机(window)安装linux系统
    linux jar自启动
    swap扩容
    tomcat加载外部项目
    springboot2.3.2控制台输出@RequestMapping路径
    linux磁盘扩容
    springboot-easycode配置文件修改
    List
    Map HashMap跟HashTable
  • 原文地址:https://www.cnblogs.com/szzshi/p/7685467.html
Copyright © 2011-2022 走看看