You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++编译报错std::vector<Invitee>不存在display成员的修复求助

问题原因

你遇到的编译报错是因为 std::vector<Invitee> 属于C++标准库的容器类型,本身没有内置display()成员方法。你定义的display()是Invitee类的成员函数,只能作用于Invitee类的单个实例,不能直接作用于存储多个Invitee实例的vector容器。

修正方案

只需要修改Event类的display()方法,遍历vector容器内的所有Invitee对象,逐个调用每个对象的display()方法即可,修改参考代码如下:

// 建议先修改Invitee类的display方法,添加const修饰符,符合常量调用规范
class Invitee {
  // 其他原有代码保持不变
  void display() const { // 新增const修饰
    cout << "Email: " << email << endl;
  }
};

class Event {
  // 其他原有代码保持不变
  void display() {
    cout << "Title: " << title << endl;
    cout << "Location: " << location << endl;
    date->GetDate();
    time->GetTime();
    // 替换原来的list.display()为以下遍历代码
    for (const auto& item : list) {
        item.display();
    }
  }
};

如果你的编译环境不支持C++11及以上版本的范围for循环,可以改用迭代器遍历:

for (vector<Invitee>::const_iterator it = list.begin(); it != list.end(); ++it) {
    it->display();
}

修改完成后即可正常输出vector中存储的所有受邀人邮箱信息。

内容的提问来源于stack exchange,提问作者Jake Alvarado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:57:04