gpt4 book ai didi

c++ - gem5 模拟 : error when goodbye. sayGoodbye(myName) 调用

转载 作者:行者123 更新时间:2023-11-30 04:44:17 24 4
gpt4 key购买 nike

我正在学习 gem5 模拟器,我对 C++ 的了解很少,我正在关注 this教程指导。在构建对象期间,对于 goodbye.sayGoodbye(myName); 语句,终端显示此错误: enter image description here

GoodbyeObject 类中 sayGoodbye() 函数的定义:

void
GoodbyeObject::sayGoodbye(std::string other_name)
{
DPRINTF(Hello, "Saying goodbye to %s\n", other_name);
message= " Goodbye" + other_name + "!! ";
fillBuffer();
}

再见对象被声明为 const GoodbyeObject * goodbye; 并且 myName 在 class HelloObject 中被声明为 const std::string myName;

我已经尝试使用 goodbye->sayGoodbye(myName); 而不是 goodbye.sayGoodbye(myName); 并且没有将 goodbye 对象声明为 const。这也给出了错误。 enter image description here您能否就此错误发生的原因或我在哪里犯错提供一些见解?

最佳答案

我不熟悉 gem5,但从纯 C++ 的角度来看,您的代码存在多个问题。

  1. 您的对象是 const 但您的成员函数不是。从变量声明中删除 const (GoodbyeObject* goodbye) 或将 const 添加到函数声明 (void GoodbyeObject::sayGoodbye (std::string other_name) const).
  2. 由于您的变量是一个指针,因此可以使用 -> 而不是 . 访问其成员。
  3. 您的不完整类型 错误表明您在使用变量之前没有包含类定义。如果您转发声明一个类(例如 class GoodbyeObject;,请注意末尾的分号)然后尝试使用它而不先完全定义它,就会发生这种情况。您是否包含了定义 GoodbyeObject 的 header ?

关于c++ - gem5 模拟 : error when goodbye. sayGoodbye(myName) 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57853396/

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