话说C++中没办法将一个const类型的pointer赋值给一个普普通通的pointer变量吗
话说C++中没办法将一个const类型的pointer赋值给一个普通的pointer变量吗?这样太不方便了呀!有时候在一个
话说C++中没办法将一个const类型的pointer赋值给一个普通的pointer变量吗?
这样太不方便了呀!有时候在一个函数中,为了确保安全,某个参数要设成const类型的pointer,但是同时又可能将这个参数赋值给一个普通的pointer变量,这个怎么解决?只能够取消掉那个const限定词吗?
[解决办法]
这种需求虽然可以用const_cast解决,但是不是好的需求
[解决办法]与设计有关哈,改变设计来解决。
[解决办法]search的返回指针类型设计为const就是个设计错误。item是否const并不是由链表的管理机构来决定的,而是由item本身决定的。
[解决办法]你这叫盲目。node作为item的管理者,在链表的管理性操作中本来就有发生变动(例如删除)的需求,除非你需要的是不能删除节点的链表(但看来你不是),否则所有对node的指针都应该是node*而不是const node*,使用const node *与你的需求就是矛盾的,所以才会产生你遇到的这个问题,这是设计错误。
[解决办法]我觉得楼主还没弄明白,const T *p和T const *p的区别,要看你到底是限定指针指向不能被更改,还是指针所指向的内容不能更改。
[解决办法]这个世界上唯一不变的就是变化。