Следуя примеру на: http://www.learncpp.com/cpp-tutorial/47-structs/, относящемся к структурам , и когда я пытался скомпилировать эту программу:
#include <iostream> void PrintInformation(Employee sEmployee) { std::cout<<"ID: "<<sEmployee.nID<<std::endl; std::cout<<"Age: "<<sEmployee.nAge<<std::endl; std::cout<<"Wage: "<<sEmployee.fWage<<std::endl; } struct Employee {int nID;int nAge;float fWage;}; int main() { Employee abc; abc.nID=123; abc.nAge=27; abc.fWage=400; // print abc's information PrintInformation(abc); return 0; }
Я получаю следующее:
Почему это?
Спасибо.
Вы должны объявить struct перед функцией, которая пытается ее использовать.
C (и, соответственно, C ++) были разработаны для однопроходной компиляции.Следовательно, все должно быть доступно компилятору к тому времени, когда это требуется.