使用指向对象的指针调用对象的方法时出现问题

Trouble calling an object's method using a pointer to that object

本文关键字:对象 问题 方法 指针 调用      更新时间:2023-10-16

所以我通常不会费心发布这么简单的事情,但我一辈子都无法弄清楚我做错了什么,这可能是我过度关注的非常简单的事情。

直截了当地说,我正在制作一个对象指针,然后使用该指针来调用该特定对象的方法。

但出于某种原因,每当我将函数设置为:

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;
}

我已经盯着这段代码看了一段时间,我不太清楚是什么原因导致它只输出了一行空白。

非常感谢您的耐心等待,

好吧,多亏了这两篇文章,很明显我在这里做错了什么,当我创建指向对象的指针时,我指向的是没有设置任何值的构造函数,因此当我通过指针技术返回值时,它给了我准确的值。它们只是一个空值,因此它只是空行。

修复:

Entry *siz = new Entry(J1,H1); //This line didn't hold parameters to call right constructor
cout << siz->getItem() << endl;