Глава 9. Описатели и спецификаторы данных

11 int CONSTANT_MEMBER::ConstRetVal() const

12 (

13 cout « "вызван постоянный член" « endl;

14 return val;

15 }

16 int CONSTANT_MEMBER::RetVal()

17 (

18 cout « "вызван непостоянный член" « endl;

19 return val;

20 }

21 void main()

22 {'

23 const CONSTANT_MEMBER cml (5);

24 // WARNING: Непостоянный член вызван для постоянного объекта.

25 cout « cml.RetVal() « endl;

26 //OK: Постоянная функция-член :.

27 cout «cml. ConstRetVal () « endl;

28 CONSTANT_MEMBER cm2(10);

29 //OK: Можно вызывать постоянные члены , // для непостоянных объектов.

30 cout « cm2.ConstRetVal() « endl;

31 //OK: Можно вызывать непостоянные члены // для непостоянных объектов.

32 cout « cm2.RetVal() « endl;

33 }

h02131.jpg

Рис. 9.3. Показывает предупреждение, полученное при вызове непостоянной функции-члена для постоянного объекта. Постоянный элемент можно вызывать и для постоянного, и для непостоянного объектов, но не наоборот