该博客主要关于指针的相关信息,包含普通指针和共享指针以及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;