Это точно правильно, потому что компилятор должен знать, какой тип он предназначен для распределения. Поэтому классы шаблонов, функции, перечисления и т. Д. Должны быть реализованы также в файле заголовка, если он должен быть опубликован или частично из библиотеки (статический или динамический), поскольку файлы заголовков НЕ скомпилированы в отличие от файлов c / cpp, которые находятся. Если компилятор не знает, что тип не может его скомпилировать. В .Net это возможно, потому что все объекты происходят из класса Object. Это не .Net.
Функция: read_line()
возвращает новый номер строки. Но функция main()
игнорирует возвращаемое значение, поэтому не обновляет локальную переменную row_num
, поэтому кодовый блок, начинающийся с:
while (row_num > 0)
, никогда не будет выполнен
вторым параметром до read_line()
не нужно. Этот параметр может быть просто локальной функцией в функции, а не параметром