2012-02-21 13 views
6

que tienen una clase abstracta de un yo como para saber si es posible definir una función abstracta con la lista de argumentos variable?funciones abstractas y argumentos variables lista

Dame un ejemplo si es posible.

+2

Por favor, añadir un ejemplo simple pseudo código de lo que le gustaría hacer. –

Respuesta

11

Sí, es posible en principio. Un ejemplo sigue a continuación. Puede ver la salida here.

También leen sobre argumentos variables lista here y here

#include <iostream> 
#include <cstdarg> 

using namespace std; 


class AbstractClass{ 

public: 

    virtual double average(int num, ...) = 0; 


}; 


class ConcreteClass : public AbstractClass{ 
public: 

    virtual double average(int num, ...) 
    { 
     va_list arguments;      // A place to store the list of arguments 
     double sum = 0; 

     va_start (arguments, num);   // Initializing arguments to store all values after num 
     for (int x = 0; x < num; x++)  // Loop until all numbers are added 
     sum += va_arg (arguments, double); // Adds the next value in argument list to sum. 
     va_end (arguments);     // Cleans up the list 

     return sum/num;      // Returns the average 
    } 



}; 



int main() 
{ 
    AbstractClass* interface = new ConcreteClass(); 
    cout << interface->average(3 , 20 ,30 , 40); 

    return 0; 
} 
Cuestiones relacionadas