Я изучаю C++, и я никогда не могу сказать, когда мне нужно использовать ::. Я знаю, что мне нужно использовать std:: перед cout и cin. Означает ли это, что внутри файла iostream разработчики, которые его создали, создали пространство имен std и помещают функции cin и cout в пространство имен std? Когда я создал новый класс, который не находится в том же файле, что и main() по какой-то причине я должен добавить ::.
Например, если я создаю class под названием A, почему мне нужно поставить A:: перед функцией, которую я создаю, хотя я не помещал ее в имя? Например, void A::printStuff(){}. Если я создаю функцию в main, почему мне не нужно ставить main::printStuf{}?
Я знаю, что мой вопрос, вероятно, запутан, но может ли кто-нибудь мне помочь?