【发布时间】:2021-10-16 23:14:17
【问题描述】:
我是 C++ 的新手,正在为使用数组和返回指针的想法苦苦挣扎。
我在.h 文件中有一个课程Student:
class Student {
public:
// stuff
int* GetNumDaysPerCourse() const;
// stuff
private:
//stuff
int numDaysPerCourse[3];
// stuff
};
我正在尝试在.cpp 文件中实现它:
int* Student::GetNumDaysPerCourse() const {
return numDaysPerCourse;
}
但我收到一条错误消息:
返回值类型与函数类型不匹配
我很困惑,因为看看其他问题,这似乎是一种有效的方法。
那么,如何在 C++ 中使用 getter 返回类成员数组?
【问题讨论】:
-
您希望人们能够更改指针指向的数组的值吗?
-
请尝试创建一个合适的minimal reproducible example 向我们展示,然后将该示例的完整构建输出复制粘贴到您的问题中。
-
error: invalid conversion from ‘const int*’ to ‘int*’ [-fpermissive] return numDaysPerCourse;是我看到的错误,因为它没有包含在问题中。 -
顺便说一下,如果调用者没有正确使用指针(修改不应修改的数据、超出范围等),则返回指向内部数据的指针可能会导致问题。我建议您使用
std::array<int, 3>作为数组,并通过常量引用或值返回。 -
@Mr.Spock 好的。然后,您将需要 Remy Lebeau 的回答中的选项 2