【发布时间】:2019-11-09 08:46:16
【问题描述】:
这是我的 main() 函数的代码:
std::map<int, std::string> candyMap;
std::vector<House*> houseVector;
std::ifstream abodeFile{houseFile};
std::string houseLine;
if(abodeFile.is_open())
{
while(getline(abodeFile, houseLine))
{
houseVector.push_back(new House(houseLine, candyMap));
}
}
std::cout << std::setw(11) << " ";
for(auto i:houseVector)
{
std::cout << std::setw(11) << i;
}
我正在尝试打印出 houseVector 中的元素。显然,通过上面的代码,我得到了元素的地址。当我执行*i 时,我收到<< 的操作员错误。此处取消引用的正确方法是什么?
【问题讨论】:
-
您需要为
House重载operator<<。或者使用i->member一一打印其所有成员。 -
你想通过 cout 一个对象看到什么?
标签: c++ pointers dereference