【发布时间】:2021-12-29 13:56:36
【问题描述】:
我正在尝试编写适合面向对象编程的 C++ 代码。
我有两个类,即Student 和Course。在Student 类中,我有quiz_scores,它是一个由4 个整数组成的一维数组。我需要 set 和 get 方法,两者都以自然通用的方式使用。
下面我实现setQuizScores方法:
void Student :: setQuizScores(int* quizscores){
for(int i = 0; i<4; i++){
quiz_scores[i] = quizscores[i];
}
quizscores 是我的私人会员。
现在,接下来我想在 getQuizScores 中为 Student 班级的每个学生返回这个 quiz_scores 数组。
但是,问题在于 C++ 不允许我们直接返回数组。相反,我希望我的代码结构如下:
int Student :: getQuizScores(){
Do something;
return the elements of quiz_scores;
}
我怎样才能有效地做到这一点?
我不喜欢使用标准模板库(STL),所以我需要创建自己的数组并按照上面的解释访问它们。
【问题讨论】:
-
因为 C++ 不允许我们直接返回数组 -- 使用
std:::array<int, 4>,那么所有这些问题都消失了。 -
@PaulMcKenzie 我不喜欢使用 STL。我应该以标准方式创建自己的数组。
-
然后将数组放入
struct。与数组相反,structs 可以按值返回。 (实际上,std::array什么也没做。) -
注意:返回类型
int和返回quiz_scores的元素;并不能很好地结合在一起。 -
你真的应该开始学习STL,C++中的大部分是关于STL的。不使用 STL 将 C++ 简化为“C with classes”。使用 STL是标准的 C++ 方式。