0

私のクラスextPersonTypeは他の 3 つのクラスから継承されています。プログラムはエラーなしでコンパイルされますが、何らかの理由で文字列relationphoneNumberが表示されません。私が求める他のすべての情報はそうです。私の問題はどこですか?

class extPersonType: public personType, public dateType, public addressType
{
public:
extPersonType(string relation = "", string phoneNumber = "", string address = "", string city = "", string state = "", int zipCode = 55555, string first = "", string last = "", 
    int month = 1, int day = 1, int year = 0001)
    : addressType(address, city, state, zipCode),  personType(first, last), dateType (month, day, year)
{
}
void print() const;

private:
string relation; 
string phoneNumber;
};

void extPersonType::print() const
{
cout << "Relationship: " << relation << endl;
cout << "Phone Number: " << phoneNumber << endl;
addressType::print();
personType::print();
dateType::printDate();
}



/*******
MAIN PROGRAM
*******/

int main()
{
extPersonType my_home("Friend", "555-4567", "5142 Wyatt Road", "North Pole", "AK", 99705, "Jesse", "Alford", 5, 24, 1988);
my_home .extPersonType::print();
      return 0;
}
4

3 に答える 3

1

次のように呼び出す必要があります

my_home.print();

あなたはおそらくそれが宣言されている方法に混乱しています:

void extPersonType::print(){ <..> }

ここでのextPersonType::部分は、関数がクラスの一部であることをコンパイラに伝えるだけです。関数を呼び出すときは、クラスの特定のオブジェクト (この場合は ) に対して既に呼び出しているためmy_home、クラス名を使用しないでください。

于 2012-10-09T06:41:09.670 に答える