13-6.txt

来自「《C-C++完美演绎》源代码 《C-C++完美演绎》源代码」· 文本 代码 · 共 37 行

TXT
37
字号
/* 范例:13-6 */
#include <iostream.h>
class A
{
  public:
    A():a(7){}
    int a;
    int get_a() const;
};
int A::get_a() const
{
  (const_cast<A*>(this))->a = 2*a;  // #1
  return (this->a);
}
void main()
{
  const A *pa = new A;

  (const_cast<A*>(pa))->a = 11; // #2
  cout << pa->a << endl;
  //  pa->a = 5; // #3 error

  A *pa2 = new A;
  cout << pa2->a << endl;
  cout << pa2->get_a() << endl;
  delete pa;
  delete pa2;

  getchar();
}

程序执行结果:
11
7
14

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?