Методы с модификатором volatile
{
protected:
//...
public:
A();
~A();
void xMthd(void) volatile;
};
В VC++6.0 компилится. Токо непонятно какую роль играет модификатор volatile в объявлении метода...
Подскажите в чем смысл такого объявления?
Зачем volatile написано в данном случае, для меня тоже загадка :{
Зачем volatile написано в данном случае, для меня тоже загадка :{
Самомодифицирующийся код. :D
Самомодифицирующийся код. :D
Не ну реально! Компилится, работает, а какой смысл во всем этом если неизвестно назначение модификатора (именно для данного случая).
Может это метод который может вызываться извне как callback функция?
Не ну реально! Компилится, работает, а какой смысл во всем этом если неизвестно назначение модификатора (именно для данного случая).
Может это метод который может вызываться извне как callback функция?
А может это автор просто выпендрился?
Много я видел программ, некоторые содержали volatile переменные, но функций с таким модификатором никогда не встречал. Даже приблизительно не могу себе представить, что volatile может значить применительно к функции...
А может это автор просто выпендрился?
Если при сборке программы компилятор пишет:
"... .exe - 0 error(s), 0 warning(s)", значит логично предположить, что объявление методов с модификатором volatile вполне допустимо. Я же просто хочу докопаться до истины, т.е. узнать - какую роль играет сей модификатор в данном конкретном случае.
class A
{
protected:
//...
public:
A();
~A();
void xMthd(void) const;
void yMthd(void) volatile;
void zMthd(void) const volatile;
};
- Внутри метода xMthd(), указатель this будет иметь тип (const class A * const),
внутри метода yMthd(), указатель this будет
иметь тип (volatile class A * const), а
внутри метода zMthd(), указатель this будет
иметь тип (volatile const class A * const),
со всеми вытекающими отседа последствиями.