HasPtr(const int &p, int i): ptr(new int(p))!!这里p语义上不是指针,不过32位平台上指针一般是4位的倒是可以强制转换为int!!&p是引用参数的标志,不是取址运算符!!ptr(new int(p))等价于HasPtr.ptr = new int(p);即给类成员ptr赋值new int(p)且*ptr = p;
HasPtr(const int &p, int i): ptr(new int(p)) 如果p是指针,上句&p和ptr(new int(p)) 是什么意思? ============== p不是指针,ptr是指针,括号里new了一个int,然后用p的值来初始化指针指向的值。 int& p是引用
==============
p不是指针,ptr是指针,括号里new了一个int,然后用p的值来初始化指针指向的值。
int& p是引用