este es un programa que su codigo comienza siendo programado en C, hasta que el mismo ira evolucionando pase a C++.
El codigo nos paso el profesor del instituto y que no he logrado que compile ya que me devuelve los siguientes errores.
revise la hoja del profesor varias veces y no encuentro diferencias solo que el de el compila y el mio no.
les estare muy agradecido por su colaboracion. muchas gracias!!
errores:
[C++ Error] main.cpp(78): E2451 Undefined symbol 'CollectionResult'
[C++ Error] main.cpp(79): E2451 Undefined symbol 'result'
[C++ Error] main.cpp(82): E2451 Undefined symbol 'LessThanFive'
[C++ Error] main.cpp(87): E2268 Call to undefined function 'select'
Código C:
Ver original
// //main.cpp //CollectionRefactoring_04 // // #include <iostream> #include "Collection.h" typedef bool ( *Condition )(Type item) ; // //user defined condition... // bool lessThanFive(Type item) { return item < 5 ; } bool DivisibleByTwo(Type item) { return ( item % 2 == 0 ) ; } // //Utility function Dump // void CollectionDump( Collection thisCollection ) { Type* item = CollectionFirst( thisCollection ) ; if( item ) { std::cout << "Collection ( " << CollectionCount( thisCollection ) << " items )" << std::endl ; while ( item ) { std::cout << ( *item ) << " " ; item = CollectionNext( thisCollection ) ; } std::cout << std::endl ; }else { std::cout << " Collection Empty " << std::endl ; } } // //Select Function // void Select( Collection input, Condition condition, Collection& result ) { Type* item = CollectionFirst( input ) ; while ( item ) { if ( condition( *item ) ) CollectionAdd( result, *item ) ; item = CollectionNext( input ) ; } } int main(int argc, const char * argv[]) { Type data[] = { 2,3,5,9,6,23,4,10,12,44,13,1,22 } ; int sizeOfData = sizeof(data) / sizeof(Type ) ; Collection collection ; CollectionInitialize( collection ) ; CollectionCreateWith( collection, data, sizeOfData ) ; CollectionDump( collection ) ; CollectionResult ; CollectionInitialize( result ) ; CollectionDump( result ) ; Select ( collection, LessThanFive, result ) ; CollectionDump( result ); CollectionRelease( result ) ; select( collection, DivisibleByTwo, result ) ; CollectionDump( result ) ; return 0; }