Здравствуйте, Lorenzo_LAMAS, Вы писали:
I>>1. Можно ли объявлять глобальную функцию (не член класса) как "int g(void) const". Думается что нет, т.к. не вижу смысла. Если да, то что это значит?
L_L>Нет, нельзя. Так же как и статическую функцию-член класса нельзя.
Статическую функцию член класса ещё как можно создавать.
class A
{
public:
static int sfuncA()
{
return 3; // всё в порядке
return i_; // а вот тут ошибка компилятора, т.к. статическая функция класса не имеет доступа к переменным и к this.
}
private:
int i_;
}
A * a = NULL;
int b = a->sfuncA(); // ошибки нет, даже с учётом того, что указатель NULL;
Обычно статическая функция создаётся для запуста нового потока, и в качестве поточной функции используется статическая функция
static int MyClass::start(MyClass * object);