C++ 指针和const的讨论

 

该博客主要关于指针的相关信息,包含普通指针和共享指针以及const的讨论

#include <iostream>
#include <memory>

using namespace std;

// 对于普通类型指针
#define PTR(X)       X*                // 普通指针
#define CONST_PTR(X) const X*          // 指针内容不可修改
#define PTR_CONST(X) X* const          //  指针不可修改
#define CONST_PTR_CONST(X) const X* const // 指针和指针内容不可修改

// Ptr: 普通共享指针
// ConstPtr: 不可修改内容的共享指针
// PtrConst: 不可修改指针的共享指针,内容可以修改
// ConstPtrConst: 只能初始化的指针,不能做任何的修改动作
#define SHARED_PTR_DEFINE(X) \
    public: \
    typedef std::shared_ptr<X> Ptr;  \
    typedef std::shared_ptr<const X> ConstPtr;  \
    typedef const std::shared_ptr<X> PtrConst; \
    typedef const std::shared_ptr<const X> ConstPtrConst;

class testA
{
    SHARED_PTR_DEFINE(testA)
    public:
        testA()
    {
        a = 10000;
    }

public:
    void print() const
    {
        std::cout << "a = " << a << std::endl;
    }

public:
    int a;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值