У меня есть класс, написанный третьей стороной, который имеет что-то вроде этого Foo.h:
class Foo
{
public:
int Foo::dosomething(float x, float y, float z);
//Other things here
};
А в Foo.cpp dosomething это:
int Foo::dosomething(float x, float y, float z)
{
//Something
}
Что означает ::
перед именем функции в заголовке? Когда я создаю новый объект
Foo foo;
Я не могу получить доступ к функции dosomething следующим образом:
foo.dosomething(1,2,3);
Как dosomething должен быть доступен? Когда я удаляю :: в файле заголовка, прежде чем делать что-то вроде этого:
class Foo
{
public:
int dosomething(float x, float y, float z);
//Other things here
};
Я могу получить доступ к чему-то из объекта типа Foo.
Foo
вint Foo::dosomething(float x, float y, float z);
в объявлении класса является дополнительным и плохо отформатированным С++. (Некоторые компиляторы выдают предупреждение, другие его игнорируют) - person   schedule 24.06.2015