0

次のクラスでコンストラクターを使用する方法を理解するのに問題があります

class Polynomial{
private:
    typedef struct term{
        double coef;
        unsigned deg;
        struct term * next;
    }term_t;
    typedef struct term *Term;
    typedef struct term *Poly;
public:
    Polynomial(); //Constructor
    ~Polynomial(); //Destructor
    Poly newPoly(void);

コンストラクターを割り当てるにはどうすればよいですか? Poly newPoly(void) は、項のない多項式を返す必要があります。これらの関数の多項式でこの特定の構造体を使用する方法を理解するのに苦労しています。

4

1 に答える 1

1

削除しnewPoly(void)ます。それは、コンストラクターが行うべき作業を行っているだけです。

何も達成しない typedef を削除します。

多項式をどのように記述するかは、クラスがどのように設計されているかによって異なります。通常、この種のクラスでは、いくつかのメンバー変数を定義し、コンストラクターで初期化します。たとえば、次のように書くことができます

class Polynomial{
private:
    struct term{
        double coef;
        unsigned deg;
        term* next;
    };
    term* head; // pointer to first term
    int size; // number of terms
public:
    Polynomial() { head = NULL; size = 0; }
    ~Polynomial();
};

しかし、これは単なる提案です。このクラスを設計し、その設計に必要なメンバー変数を決定するのはあなた次第です。

項のない新しい多項式を取得するには、次のように記述します。

int main()
{
    Polynomial p; // a new polynomial
    ...
}

このクラスのコピー コンストラクターと代入演算子も作成する必要があることを忘れないでください。

于 2012-11-23T06:40:34.627 に答える