Определение энергозависимого объекта класса

Энергозависимое может использоваться для объектов класса? Как:

volatile Myclass className;

Проблема состоит в том, что это не компилирует, везде когда некоторый метод вызывается, ошибка говорит: ошибка C2662: 'функция': не может преобразовать 'этот' указатель из 'энергозависимого MyClass' к 'MyCLass и'

Какова проблема здесь и как решить ее?

Править:

class Queue {
            private:
                struct Data *data;
                int amount;
                int size;
            public:
                Queue ();
                ~Queue ();
                bool volatile push(struct Data element);
                bool volatile pop(struct Data *element);
                void volatile cleanUp();
            };
    .....
    volatile Queue dataIn;

        .....

    EnterCriticalSection(&CriticalSection);
    dataIn.push(element);
    LeaveCriticalSection(&CriticalSection);
6
задан maximus 20 June 2010 в 05:19
поделиться

2 ответа

Да, можно, но тогда вы сможете вызывать только функции-члены, которые объявлены volatile (так же, как и ключевое слово const). Например:

 struct foo {
    void a() volatile;
    void b();
 };

 volatile foo f;
 f.a(); // ok
 f.b(); // not ok

Edit based on your code:

bool volatile push(struct Data element);

объявляет non-volatile функцию-член, которая возвращает bool volatile (= volatile bool). Вы хотите

bool push(struct Data element) volatile;
15
ответ дан 8 December 2019 в 04:28
поделиться

Я думаю, он хотел сказать

            bool push(struct Data element) volatile;

вместо

            bool volatile push(struct Data element);

. Также посмотрите здесь http://www.devx.com / tips / Tip / 13671

7
ответ дан 8 December 2019 в 04:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: