Abstract functions and variable argument list

I have an abstract class. I like to know if it is possible to define an abstract function using a list of variable arguments?

Give an example, if possible.

+6
source share
1 answer

Yes, it is possible in principle. The following is an example. You can see the result here .

We also read about the list of variable arguments here and 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; } 
+11
source

Source: https://habr.com/ru/post/908963/


All Articles