例如代码:
A* pA = new A;我需要避免在编译阶段使用指针递增/递减运算符:
pA++; // MUST failed during compilation phase发布于 2010-11-26 01:15:08
您可以将pA声明为
A * const pA = new A;这使得pA成为指向A对象的常量指针。指针在初始化后不能更改,但它的内容可以更改。
比较
const A *pA = new A;它是一个指向const A对象的指针。
如果你想遍历A对象的数组,就需要一个单独的指针。
A * const pAs = new A[size];
for (A * iter = pAs; iter < pAs+size; ++iter)
{
// do stuff
}发布于 2010-11-26 00:05:59
这是不可能做到的。
既然我猜你想这样做是为了避免意外的错误,我猜聪明的(Ass)解决方案不适用(包括发明一些类似指针的包装类等),因为它们会增加错误的概率:)
发布于 2010-11-26 00:07:54
如果你想坚持使用原始指针,那是不可能的。
你需要用一个类来包装它,这个类没有实现那个运算符(也叫智能指针)。
https://stackoverflow.com/questions/4278897
复制相似问题