私はコードを持っています:
私のベクトル:std::vector<spreadsheet> spreadsheets;
//create a new spreadsheet if it doesn't already exist. Link the session to the spreadsheet.
bool server::createSpreadsheet(session* session, std::string name, std::string password)
{
std::cout << "beginning" << std::endl;
bool found = false;
for(int i = 0; i < spreadsheets.size(); i++)
{
spreadsheet test = spreadsheets.at(i);
std::cout << "spreadsheet name = " << &test << std::endl;
if(spreadsheets.at(i).name == name) //spread sheet already exists
{
found = true;
}
}
std::cout << "After For found = " << found << std::endl;
if(!found) //create a spreadsheet
{
spreadsheet * spr = new spreadsheet(name, password);
spr->linkSession(session);
spreadsheets.push_back(*spr);
}
else
{
std::cout << "in else" << std::endl;
return false;
}
return true;
}
これにより、毎回新しいスプレッドシート オブジェクトが作成され、ベクターに配置されることを期待しfound
てfalse
いました。しかし、私が得ている出力に基づいて、毎回同じオブジェクトを置いているようですか? ここで何が起こっているのか途方に暮れていますか?
数回実行した後の出力:
beginning
spreadsheet name = 0x7fff568bce10
spreadsheet name = 0x7fff568bce10
spreadsheet name = 0x7fff568bce10
spreadsheet name = 0x7fff568bce10
spreadsheet name = 0x7fff568bce10
spreadsheet name = 0x7fff568bce10
spreadsheet name = 0x7fff568bce10
spreadsheet name = 0x7fff568bce10
spreadsheet name = 0x7fff568bce10