2012-02-21 2 views
6

가변 인수 목록이있는 추상 함수를 정의 할 수 있는지 알고 싶습니다. 추상 클래스가 있습니까?추상 함수 및 가변 인수 목록

가능한 경우 예를 들어주세요.

+2

여러분이 무엇을하고 싶은가의 간단한 의사 코드 예제를 추가하십시오. –

답변

11

예, 원칙적으로 가능합니다. 예는 다음과 같습니다. 출력은 here입니다.

또한 가변 인수에 대해 읽어 목록 herehere

#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; 
}