面向对象技术(C++ Primer)第4章.pptVIP

  • 3
  • 0
  • 约2.51万字
  • 约 38页
  • 2017-01-02 发布于河南
  • 举报
25.我们使用指针来修改其所指对象的值。但如果指针指向const对象,则不允许用指针 来改变其所指的const值。为了保证这个特性,C++强制要求指向const对象的指针必须具有const特性。 这里的cptr是一个指向double类型的const对象的指针。Const限定了cptr指针所指向的对象的类型,而非cptr本身。Cptr本身并不是const的。在定义时不需要对它进行初始化。允许给cptr重新赋值,使其指向另一个const对象。但不能通过cptr修改其所指对象的值。 把一个const对象的地址赋给一个普通的,非const对象的指针也会导致编译时错误。另外,不能使用void*指针保存const对象的地址,而必须使用const void*类型的指针保存const对象的地址。允许把非const对象的地址赋给指向const对象的指针。但不允许用const指针改变非const对象的值。因为cptr一经定义,就不允许修改其所指对象的值。如果该指针恰好指向非const对象,同样要遵循这个原则。尽管不能用const指针修改一个非const对象的值,但这个非const对象的值可通过非const指针修改,导致的结果是,const指针所指向对象的值被修改了。也就是说,不能保证指向const的指针所指向对象的值一定不可修改。如果把指向const对象的指针理解为“自以为指向const的指针”,

文档评论(0)

1亿VIP精品文档

相关文档