gpt4 book ai didi

c++如何访问父类中的函数?

转载 作者:行者123 更新时间:2023-11-30 02:25:52 25 4
gpt4 key购买 nike

我有类 Books 和子类 BookClient

Books 类中,它们是计算书龄的函数:

int age()
{return 2017 - getage();}

我想要打印>5 年 且来自特定出版商的书籍的功能。

我正在使用range-based for 循环访问vec.

vector <BookClient> vec;

void printageover5(string publisher)
{
for (const auto& cs : vec)
if (cs.age() > 5 && getpublisher()==publisher)
{
..........
}
}

int main()
{
printageover("Amazon");
}

getpublisher() 是 Book Client 类的成员

他们的错误是:

the object has type qualifiers that are not compatible with the member function
object type is: const Books

最佳答案

问题是 age 不是 const 成员函数,因此您不能在 const 引用上调用它。

将声明更改为

int age() const { return 2017 - getage(); }

并确保 getage() 成员函数也被声明为 const

int getage() const { ... }

注意:如果您希望您的代码在超过一年的时间内都是正确的,那么对当前年份进行硬编码并不是一个好主意。

关于c++如何访问父类中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43633305/

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