Здравствуйте, Udzhen, Вы писали:
U>U>1) aboutQt();
U>2) ::aboutQt();
U>3) QApplication::aboutQt()
U>
U>;
U>Какой вариант по Вашему мнению наиболее предпочтителен?
В общем случае тот в котором компилятору не придется за тебя додумывать откуда же именно взять вызываемую функцию.
U>Есть ли какие либо технические тонкости при различном обращении?#include <iostream>
void aboutQt()
{
std::cout << __FUNCTION__ << std::endl;
}
class QApplication
{
public:
static void aboutQt()
{
std::cout << __FUNCTION__ << std::endl;
}
};
class My1Aplication : public QApplication
{
public:
static void aboutQt()
{
std::cout << __FUNCTION__ << std::endl;
}
static void foo()
{
std::cout << std::endl << __FUNCTION__ << "\n-------------------\n";
aboutQt();
::aboutQt();
QApplication::aboutQt();
}
};
class My2Aplication : public QApplication
{
public:
static void foo()
{
std::cout << std::endl << __FUNCTION__ << "\n-------------------\n";
aboutQt();
::aboutQt();
QApplication::aboutQt();
}
};
int main()
{
My1Aplication::foo();
My2Aplication::foo();
return 0;
}
Результат:
My1Aplication::foo
-------------------
My1Aplication::aboutQt
aboutQt
QApplication::aboutQt
My2Aplication::foo
-------------------
QApplication::aboutQt
aboutQt
QApplication::aboutQt