关于在 C++ 中结合结构的函数的输出和使用的问题

Question regarding the output and use of a function combined with a structure in C++

我们的任务是通过将三个独立的函数与一个结构相结合来创建霍纳法则。 结构如下所示:

struct Polynomial
{
    long n;
    double* a;
};

接下来我创建了一个应该包含多项式次数和系数的函数:

Polynomial createPoly()
{
    Polynomial poly;
    std::cout << "Enter polynomial degree: ";
    std::cin >> poly.n;

    poly.a = new double[poly.n];
    for (int i = 0; i < poly.n; i++)
    {
        std::cout << "The polynomial coeff x ^ " << i <<" = " << std::endl;
        std::cin >> poly.a[i];
    }

    return poly;
}

注意除了cin后面写的代码以外的所有内容>>poly.n;是强制性的。 我现在的问题是,我的 createPoly 函数到底是什么?它具有之前的结构定义,并且不接受任何值作为函数输入。我怎样才能在其他函数中使用 poly.n 和 poly.a?

例如,我现在必须创建一个通过 horners 规则计算多项式的函数,但我不知道如何将它与我的 createPoly 函数结合使用。

double calcPoly(double x, const Polynom* poly); //calc poly defintion

提前致谢。

你的函数 createPoly returns 一个 Polynomial 对象所以你可以这样写:

Polynomial p = createPoly();
double result = calcPoly(1.56, &p);

基本上,createPoly 函数 returns 一个对象,然后您可以将其设置为变量并在其他函数中使用,例如 calcPoly 或任何其他函数。