---
description: улучшение читаемости
---

# Методы вне класса

{% hint style="info" %}
Мы можем выносить методы класса за его пределы оставляя лишь прототипы.

\
Это используют для того, что бы не засорять класс длинными методами и не было проблем с областями видимости.
{% endhint %}

```cpp
class MyClass
{
public:
    void HelloMessage();  // прототип метода
    
}

void MyClass::HelloMessage()  // метод вне класса
{
    cout << "Hello!" << endl;
}
```

\
Если бы метод был большим, то вынесение его за пределы класса облегчило читаемость кода.

Так же это полезно если разные методы ссылаются друг на друга, но из за [областей видимости](oblast-vidimosti) не видят метод написанный выше.



<figure><img src="https://3428282341-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8g6l9OgxZaxwQ9lhNvMb%2Fuploads%2FjEG83xYOSvBgcd0Wys0w%2Fimage.png?alt=media&#x26;token=7a58f1ef-075c-46cb-a7ce-8c2ec370d006" alt=""><figcaption><p>В классе остаются только прототипы методов</p></figcaption></figure>

<figure><img src="https://3428282341-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8g6l9OgxZaxwQ9lhNvMb%2Fuploads%2Fd4DlwvGMMgWl2TsZMH5V%2Fimage.png?alt=media&#x26;token=4f175b05-c72d-4641-99ef-1b0af06d36c7" alt=""><figcaption><p>вся логика работы методов вынесена за пределы класса</p></figcaption></figure>
