gpt4 book ai didi

c++ - 如何打印类方法返回的值

转载 作者:行者123 更新时间:2023-11-30 03:17:56 28 4
gpt4 key购买 nike

我在打印类方法返回的值时遇到问题。在 DataClass 实例中,cout 使用以下形式的语句打印 dataMember(一个 int):

cout << dataClassInstance.getDataMember();

但是,包含 DataClass 作为成员的 ListEntry 无法使用其自己的函数打印相同的值。表格是:

cout << listEntryInstance.getDataClass();

ListEntry 使用它自己的 get 函数调用 DataClass 的 get 函数来返回相同的 int 值,但它给出了一个错误:

[Error] no match for 'operator<<' (operand types are 'std::basic_ostream' and 'DataClass')

任何关于我做错了什么的想法都将不胜感激。到目前为止,我似乎找不到任何解决方案。

class DataClass 
{
private:
dataType dataMember;

public:
//default
DataClass()
{
dataMember;
}

//parameterized
DataClass(dataType inputData)
{
dataMember = inputData;
}

//copy
DataClass(const DataClass &inputData)
{
dataMember = inputData.dataMember;
}

//destructor
~DataClass()
{

}

//set
void setData(dataType inputData)
{
dataMember = inputData;
}

//get
dataType getDataMember()
{
return dataMember;
}

};

class ListEntry
{
private:
DataClass data;
ListEntry* nextEntryPtr;
ListEntry* prevEntryPtr;

public:
//default
ListEntry() : data()
{

nextEntryPtr = NULL;
prevEntryPtr = NULL;
}

//parameterized
ListEntry(const DataClass& inputData) : data(inputData)
{
nextEntryPtr = NULL;
prevEntryPtr = NULL;
}

//copy
ListEntry(const ListEntry& entryToCopy) : data(entryToCopy.data)
{
nextEntryPtr = NULL;
prevEntryPtr = NULL;
}

//destructor
~ListEntry()
{

}

//set
void setDataClass(DataClass dataInput)
{
data.setData(dataInput.getDataMember());
}

void setNextEntry(ListEntry* entryPtr)
{
nextEntryPtr = entryPtr;
}

void setPrevEntry(ListEntry* entryPtr)
{
prevEntryPtr = entryPtr;
}

//get
DataClass getDataClass()
{
return data.getDataMember();
}

ListEntry* getNextEntry()
{
return nextEntryPtr;
}

ListEntry* getPrevEntry()
{
return prevEntryPtr;
}

};

我用来测试每​​个类功能的代码示例。 DataClass给出了预期的结果,ListEntry只给出了一个错误。

//STUB TEST FOR DATACLASS 
dataType constructTest = 42;

cout << "Creating DataClass with default constructor."
<< endl;

DataClass defaultTestData; //default initialize

cout << "Value held in DataClass: "
<< defaultTestData.getDataMember()
<< endl << endl;



//STUB TEST FOR LISTENTRY

cout << "Creating list entry with default constructor." << endl;
ListEntry defaultEntry;

cout << "Value held in list entry:"
<< defaultEntry.getDataClass()
<< endl << endl;

最佳答案

您正在尝试打印 DataClass , 不是它的成员。对于此类,您尚未指定如何打印它(通过重载 << 运算符)。这就是编译器所提示的。

你想要的大概是

cout << listEntryInstance.getDataClass().getDataMember();

关于c++ - 如何打印类方法返回的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55094455/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com