1

だから私はこれを得ています:

エラー: タイプの引数はタイプ"Person *"と互換性がありません"Person *"

何が間違っているのかわかりません。それはばかげていると確信していますが、誰かがそれを指摘できればそれは素晴らしいことです.

LL* g_list;
int size = 50;

char getOption();

int main()
{
    char input;
    bool running = true;
    g_list = new LL;

    char* name = new char[size];
    char* color = new char[size];
    cout << "enter name: ";
    cin >> name;
    cout << "enter color: ";
    cin >> color;
    Person* pers = new Person(name, color);

    g_list->addBack(pers);  //error

    return 0;
}

//LL.cpp file (linked list)
void LL::addBack(Person* pobj)
{
    if (count_ == 0)
    {
        head_ = pobj;
    }
    else 
    {
        Person* ptr = head_;
        for (int i = 0; i < count_ - 1; i++)
        {
            ptr = ptr->next_;
        }

        ptr->next_ = pobj;
    }

    count_++;
    pobj->next_ = 0;

    return;
}

//Person constructor
Person::Person(char* name, char* color)
{
    name_ = new char[strlen(name)];
    strcpy(name_, name);

    color_ = new char[strlen(color)];
    strcpy(color_, color);

    next_ = 0;
}

さらに情報が必要な場合はお知らせください。

4

1 に答える 1

2

タイプが同じであると報告されているため、奇妙に思えます。考えられる理由は 1 つだけです。2 つの異なるPersonタイプがあり、それらが競合しています。Personinの定義がどこから来ているのかを把握し、それをused inmain()の定義と比較する必要があります。PersonLL::addBack()

于 2012-05-09T20:02:48.853 に答える