C++ 如何在类函数中编辑向量的私有成员?
我在做我的工作,输入一些分数,打印出分数、排名和通过/不通过。我正在使用C++ 17,编辑我的排名有一个错误。 我曾尝试将我的向量放入头文件上的“setRankPass”函数中,但根本不起作用 头文件C++ 如何在类函数中编辑向量的私有成员?,c++,class,pointers,vector,C++,Class,Pointers,Vector,我在做我的工作,输入一些分数,打印出分数、排名和通过/不通过。我正在使用C++ 17,编辑我的排名有一个错误。 我曾尝试将我的向量放入头文件上的“setRankPass”函数中,但根本不起作用 头文件 #pragma once #include <vector> class Score { public: Score(int score) : _score{ score } { } int getScore() { retur
#pragma once
#include <vector>
class Score {
public:
Score(int score)
: _score{ score } {
}
int getScore() {
return _score;
}
int getRank() {
return _rank;
}
bool getPass() {
return _pass;
}
void setRankPass(const std::vector<int>* scores, int size) {
for (int i{ 0 }; i < size; i++) {
_rank = rank[i];
}
double average = static_cast<double>(_rank) / size * 100;
if (average <= 10) {
_pass = true;
}
else {
_pass = false;
}
}
private:
int _score{ 0 };
int _rank{ 0 };
bool _pass{ false };
};
#pragma一次
#包括
班级成绩{
公众:
分数(整数分数)
:_得分{score}{
}
int getScore(){
返回(u)分数;;
}
int getRank(){
返回_秩;
}
bool getPass(){
回程通行证;
}
void setRankPass(常量标准::向量*分数,整数大小){
对于(inti{0};i 不能在此范围内没有rank
向量变量:
void setRankPass(const std::vector<int>* scores, int size) {
for (int i{ 0 }; i < size; i++) {
_rank = rank[i];
}
double average = static_cast<double>(_rank) / size * 100;
if (average <= 10) {
_pass = true;
}
else {
_pass = false;
}
}
请注意,在此修复之后,您必须更改主菜单中的以下行:
v[a].setRankPass(&rank, counter);
关于这一行:
v[a].setRankPass(rank, counter);
在此范围内没有rank
向量变量:
void setRankPass(const std::vector<int>* scores, int size) {
for (int i{ 0 }; i < size; i++) {
_rank = rank[i];
}
double average = static_cast<double>(_rank) / size * 100;
if (average <= 10) {
_pass = true;
}
else {
_pass = false;
}
}
请注意,在此修复之后,您必须更改主菜单中的以下行:
v[a].setRankPass(&rank, counter);
关于这一行:
v[a].setRankPass(rank, counter);
@Minjae Lee没有声明类成员函数中使用的变量_rank和rank。您的类定义不完整。请发布。vectorank;rank[0]
返回一个没有setRankPass
方法的int。你是说向量秩
?对不起,我没有上传我的全部源代码。好吧,编译器是对的:秩
没有在那里声明。没有名为秩
的局部变量,没有名为秩
的函数参数,也没有class成员调用了rank
。此代码应该做什么?您还使用命名空间std;
遗漏了错误的的真实位置,这很不方便地咀嚼rank[i]
,并告诉您它没有意义,因为它需要一个模板参数。\u rank=rank[i]
毫无意义。@Minjae Lee没有声明类成员函数中使用的变量_rank和rank。您的类定义不完整。请发布。vectorank;rank[0]
返回一个没有setRankPass
方法的int。你是说向量秩
?对不起,我没有上传我的全部源代码。好吧,编译器是对的:秩
没有在那里声明。没有名为秩
的局部变量,没有名为秩
的函数参数,也没有class成员调用了rank
。此代码应该做什么?您还使用命名空间std;
忽略了错误的的真实位置,这很不方便地咀嚼rank[i]
,并告诉您它没有意义,因为它需要一个模板参数。\u rank=rank[i]
没有意义。