Re: Конфликт макроопределения и метода класса
От: CyberDemon Россия  
Дата: 01.09.03 13:16
Оценка: -3 :)
Здравствуйте, tousled, Вы писали:

T> Доброго времени суток, уважаемые!


T>Есть макроопределение (в заголовках компилятора):

T>
T>#ifdef UNICODE
T>    #define GetObject  GetObjectW
T>#else
T>    #define GetObject  GetObjectA
T>#endif // !UNICODE
T>


T>и есть класс:

T>
T>clacc CTemp
T>{
T>    CTemp(){GetObject()}
T>    void GetObject();
T>};
T>


T>Так вот использование метода класса становится затруднительным.

T>Посоветуйте чего нибудь, пожалуйста. Разум возмущенный мой кипит, но удовлетворительного ответа не находит.
T>Не удовлетворительные варианты таковы (по ряду причин не подходят):
T>1. Переставить местами включение заголовков.
T>2. Воспользоваться
#undef
.

T>3. Заменить макроопределение функцией.
T>4. Поменять имя метода.

T>Может у кого найдутся еще варианты?


Если не ошибаюсь, можно перед GetObject ставить "::", тогда будет вызываться глобальный метод (в данном случае — макро, как я понял), если не ставить, то, ясное дело, локальный.
А еще, если так не прокатит, можно просто рисовать "this->GetObject()"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.