gpt4 book ai didi

c++ - 抽象函数和可变参数列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:49 25 4
gpt4 key购买 nike

我有一个抽象类,我想知道是否可以定义一个带有可变参数列表的抽象函数?

如果可能的话给我一个例子。

最佳答案

是的,原则上是可以的。下面是一个例子。你可以看到输出 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;
}

关于c++ - 抽象函数和可变参数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9376872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com