Buenas noches amigos. estoy comenzando a estudiar c para luego pasar a c++.
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;
}