0

したがって、別々のヘッダー ファイルに 2 つのクラスがあります。

お客様。時間

using namespace std;
#include <iostream>

class Customer{
    friend void Display();
private:
    int number, zipCode;
public:
    Customer(int N, int Z){
    number = N;
    zipCode = Z;
    }
};

街。h 名前空間 std を使用。#include #include "Customer.h"

class City{
    friend void Display();
private:
    int zipCode;
    string city, state;
public:
    City(int Z, string C, string S){
        zipCode = Z;
        city = C;
        state = S;
    }
};

私のmain.cppは次のとおりです

#include "City.h"
#include "Customer.h"

void Display(){
        cout<<"Identification Number: "<<Customer.number<<endl
                <<"Zip Code: "<<Customer.zipCode<<endl
                <<"City: "<<City.city<<endl
                <<"State: "<<City.state<<endl;
    }


int main() {
    Customer A(1222422, 44150);
    City B(44150, "Woklahoma", "Kansas");

    Display();

}

私はC ++の基本に精通していますが、これは私が理解していないところなので、私の具体的な質問は....私の表示関数の4行について、コンパイラはなぜ「エラー:予想される一次式の前」と言うのですか「.」トークン"

前もって感謝します、 マケール

4

2 に答える 2

1

Customer is a type. You need an object of that type to access it's number member (and the same for the rest of the lines).

You probably meant to take a Customer and City as arguments to Display:

void Display(Customer customer, City city){
    cout<<"Identification Number: "<<customer.number<<endl
            <<"Zip Code: "<<customer.zipCode<<endl
            <<"City: "<<city.city<<endl
            <<"State: "<<city.state<<endl;
}

Then pass your Customer and City objects to that function:

Display(A, B);
于 2013-03-10T19:44:27.173 に答える
1

クラス名からデータメンバーにアクセスしようとしています

Customer.number

それをしてはいけない。Customerインスタンスが必要です:

Customer c;
std::cout << c.number;

あなたはおそらくに変更Display()したい

void Display(const Customer& c);

次に、次のように使用します。

Customer A(1222422, 44150);
Display(A);

についても同様ですCity

于 2013-03-10T19:42:55.330 に答える