почему вывод является адресом?

== сравнивает ссылки на объекты в Java и не является исключением для объектов String.

Для сравнения фактического содержимого объектов (в том числе String) необходимо использовать equals.

Если сравнение двух объектов String с использованием == оказывается true, это связано с тем, что объекты String были интернированы, а виртуальная машина Java имеет несколько ссылки указывают на тот же экземпляр String. Не следует ожидать сравнения одного объекта String, содержащего то же содержимое, что и другой объект String, используя == для оценки как true.

-1
задан Azrin Gusniah 10 March 2019 в 01:01
поделиться

1 ответ

Не используйте строки c, используйте std :: string. Не используйте массивы, используйте std :: array или std :: vector или аналогичный контейнер. Это наверняка решит вашу проблему.

class SportShoe  {
private:
    struct nodeSport {
        int ShoeIDList;
        std::string BrandShoeList; 
        float PriceShoeList; 
        nodeSport *last;
    };
    nodeSport *first = NULL; 

    struct Shoe  {
        int ShoeID;
        std::string BrandShoe; 
        float PriceShoe; 
    };
    std::array<Shoe, SIZE> MySepatu;

public:
    void AddSportShoe();
};

void SportShoe::AddSportShoe() {   
    std::array<SportShoe, SIZE> MySepatu;
    int numOfShoe = 0;
    nodeSport *tempShoe1; 

    while (numOfShoe < SIZE){
        cout << "Please enter the Shoe ID : (eg. 23210) " << endl;
        cin >> SportShoe::MySepatu[numOfShoe].ShoeID;

        cout << "Please enter the Shoe Brand: (eg. Adidas) " << endl;
        cin.sync();
        std::getline(cin, SportShoe::MySepatu[numOfShoe].BrandShoe); 

        cout << "Please enter the price of the Shoe : (eg. RM123.22) " << endl;
        cin >> SportShoe::MySepatu[numOfShoe].PriceShoe;
        cout << endl;

    //passing the value from 'MySepatu' to 'tempShoe'
        SportShoe::MySepatu[numOfShoe].ShoeID = tempShoe1->ShoeIDList;
        SportShoe::MySepatu[numOfShoe].BrandShoe = tempShoe1->BrandShoeList;
        SportShoe::MySepatu[numOfShoe].PriceShoe = tempShoe1->PriceShoeList;

   //i do some dummy to see what stored in tempShoe1
       cout << "ID =>> " << tempShoe1->ShoeIDList << endl;
       cout << "Brand =>> " << tempShoe1->BrandShoeList << endl;
       cout << "Price =>> " << tempShoe1->PriceShoeList << endl;
    }

    while (numOfShoe >= SIZE-1){
       cout << ">> List is already full !! <<"; 
       system("PAUSE");
       MenuSportShoe();
    }
}
0
ответ дан Thomas Sablik 10 March 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: