gpt4 book ai didi

STL::list 中的 C++ 接口(interface)

转载 作者:太空狗 更新时间:2023-10-29 23:21:23 26 4
gpt4 key购买 nike

类(class)界面

class ILesson
{
public:
virtual void PrintLessonName() = 0;
virtual ~ILesson() {}
};

STL容器

typedef list<ILesson> TLessonList;

调用代码

for (TLessonList::const_iterator i = lessons.begin(); i != lessons.end(); i++)
{
i->PrintLessonName();
}

错误:

Description Resource Path Location Type passing ‘const ILesson’ as ‘this’ argument of ‘virtual void ILesson::PrintLessonName()’ discards qualifiers

最佳答案

PrintLessonName 必须声明为 const 才能在 const ILessons 上调用。否则,编译器假定它可能会修改 ILesson 并阻止调用。

virtual void PrintLessonName() const = 0;

关于STL::list 中的 C++ 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1601457/

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