所以我通常不会在这么简单的事情上发帖,但我不能为我的生活弄清楚我做错了什么,这可能是一件非常简单的事情。
直截了当地说,我正在创建一个对象指针,然后使用该指针调用该特定对象的方法。
但是出于某种原因我每次都按照以下方式进行操作:
Entry FirstEntry = Entry(J1,H1);
cout << FirstEntry.getItem() << endl;
cout << FirstEntry.getKey() << endl;
Entry *siz = new Entry();
cout << siz->getItem() << endl;
它给我一个空行输出。而它应该给我我的物品价值。 对象本身看起来像这样:
Entry::Entry()
{
}
Entry::Entry(KeyType & Key, ItemType & newItem)
{
setKey(Key);
setItem(newItem);
}
Entry::~Entry()
{
}
ItemType Entry::getItem() const
{
return item;
}
KeyType Entry::getKey() const
{
return searchKey;
}
void Entry::setItem(const ItemType & newItem)
{
item = newItem;
}
void Entry::setKey(const KeyType & Key)
{
searchKey = Key;
}
我已经盯着这段代码了一段时间,我无法弄清楚是什么导致它输出一个空行。
非常感谢你的耐心,
答案 0 :(得分:0)
好的,感谢这两个帖子,我在这里做错了很明显,当我创建指向我的对象的指针时,我指向没有设置任何值的构造函数,因此当我返回值时我的指针技术它给了我准确的值。它们只是空值,因此它是一个空行。
修复:
Entry *siz = new Entry(J1,H1); //This line didn't hold parameters to call right constructor
cout << siz->getItem() << endl;