C++ объектно ориентирован в том смысле, что он поддерживает объектно-ориентированную парадигму разработки программного обеспечения.
Однако, в отличие от Java, C++ не заставляет вас группировать определения функций в классах: стандартный способ C++ для объявления функции состоит в том, чтобы просто объявить функцию без какого-либо класса.
Если вместо этого вы говорите о методе декларации/определения, то стандартный способ поставить только заявление в включаемый файл (обычно с именем .h
или .hpp
) и определение в отдельном файле реализации (обычно с именем .cpp
или .cxx
) , Я согласен, что это действительно раздражает и требует некоторого дублирования, но именно так был разработан язык.
Для быстрых экспериментов и проектов с одним файлом все будет работать ... но для больших проектов это разделение - это то, что практически необходимо.
Примечание. Даже если вы знаете Java, C++ - это совершенно другой язык ... и это язык, который невозможно изучать, экспериментируя. Причина в том, что это довольно сложный язык с множеством асимметрий и, по-видимому, нелогичным выбором, и, самое главное, когда вы совершаете ошибку, у вас нет «ангелов ошибок во время выполнения», чтобы сохранить вас, как в Java ... но вместо этого " неопределенные демоны поведения ".
Единственный разумный способ узнать C++ - это прочитать ... независимо от того, насколько вы умны, вы не можете догадаться, что решил комитет. (На самом деле умение иногда даже является проблемой, потому что правильный ответ нелогичен и является следствием исторического наследия.)
Просто выберите good book или два и прочитайте их на обложке.
Возможно, книга новичка на C++ может быть в порядке? –
@ Разборщики почему? что не так с моим вопросом? – JohnJohnGa
На самом деле есть 3 варианта. Второй пример может содержать определение функции в файле заголовка (но все еще не вложенное) или в отдельный файл '.cpp'. –