0

だから私はたくさんの変数を持つpackageという名前のクラスを持っています。すべての get/set メソッドとコンストラクターが動作しています。

パッケージ ヘッダー コード

threeDay ヘッダー コード

twoDay ヘッダー コード

パッケージ クラス コード

threeDayクラスコード

二日クラスコード

パッケージ クラスを継承し、そのコンストラクターを使用する必要がある twoDay および threeDay という名前の 2 つの派生クラスがあります。

パッケージ クラスのコンストラクタ:

package::package(string sN, string sA, string sC, string sS, int sZ, string rN, string rA, string rC, string rS, int rZ, int w, int c) {

    this->senderName = sN;
    this->senderAddress = sA;
    this->senderCity = sC;
    this->senderState = sS;
    this->senderZip = sZ;

    this->receiverName = rN;
    this->receiverAddress = rA;
    this->receiverCity = rC;
    this->receiverState = rS;
    this->receiverZip = rZ;

    this->weight = w;
    this->cpo = c;


}

threeDayヘッダーのコンストラクターにこのコードを使用しています:

threeDay(string, string, string, string, int, string, string, string, string, int,int,int);

必要なのは、コンストラクターを使用できるようにするために twoDay と threeDay を用意することです。つまり、派生パッケージは基本クラスのコンストラクターを使用できる必要があるということです。

現在、次のエラーが発生します。

threeDay.cpp:10:136: error: no matching function for call to ‘package::package()’

このリンクからいくつかの調査を行いました: http://www.cs.bu.edu/teaching/cpp/inheritance/intro/

およびこのリンク: C++ コンストラクタ/デストラクタの継承

そのため、コンストラクターを直接継承していないようです。まだ定義する必要があります。その場合、なぜ私のコードが機能しないのですか?

しかし、私はそれを機能させることができないようです。

コンストラクターが機能するようになると、そこから順風満帆です。

4

1 に答える 1