Pull to refresh

Comments 4

Пример файла реализации для класса Kotofey у Вас написан не правильно, так как
void  Murlicat(String gladit)
{
  //......некая реализация
}
— это функция, не принадлежащая никакому классу. Функция (метод) класса Kotofey должна быть записана так:
void  Kotofey::Murlicat(String gladit)
{
  //......некая реализация
}
Безусловно, ваш вариант является более корректным. Я тут почему-то не посчитал нужным ограничить область видимости классом (почему-то держал в голове, что класс у нас может быть только один, что может быть некорректно в более-менее большом проекте).
Дело не в области видимости. Если в заголовочнике Вы объявляете класс, то и реализацию надо писать для функций класса. Если же Вам нужны свободные функции, то и делайте их свободными и в заголовочнике, и в файле реализации.

Использовать класс для ограничения области видимости обычных функций конечно можно, объявив их статическими функциями класса, но вообще-то в C++ для этого давно существует namespace.

Что-то мне кажется, в Вашем варианте объекта Kotofey не будет создано.

А теперь посмотрим чуть более сложный пример, «объектно-ориентированное программирование» у нас или где :)

компилятор спросит где реализация методов для объекта.

Чтобы всё это было несколько интересней, мы можем даже немного усугубить ситуацию, добавить модификаторы доступа: public и protected.

А собственно для чего усугублять то? Вы планируете наследование?

Sign up to leave a comment.