Я C++ noob. У меня есть файл foo.cpp, который определяет функцию,Если я определяю функцию в файле реализации (.cpp), не определяя ее в файле заголовка, что происходит?
void sort() {
// details of sort algorithm
}
Я не определил это в соответствующем файле заголовок, но я не получаю ошибки компиляции. Я заметил, что это воспринимается как статический метод. Это так? Что именно я здесь сделал?
EDIT:
Я заметил, что внутри этого метода я не могу использовать это, (например: this-> бар), следовательно, мое предположение, что это статическая функция. Это на самом деле произошло, когда мне нужен «частный» метод, но забыл объявить его в файле заголовка. Существует ли фактическое использование такой функции?
«Что происходит?» Попробуйте и просветите нас также –
. Вы определили автономную функцию, которая по-прежнему может быть вызвана из других .cpp-файлов (это не статическая функция), но вызывающая сторона получит меньше помощи и вам придется прототип самой функции (так как ваш вопрос о C++ - в C они могут уйти с просто вызовом функции, надеясь, что они передали правильные типы аргументов и, возможно, не выяснили, были ли они неправильными до некоторой ошибки был замечен). –
В вашем названии вы имеете в виду «... * объявление * (не определяющее) его в файле заголовка». – ma11hew28