ked*_*ked 0 c++ variables double class vector
我试图使用类的函数更改向量中的值,该向量是类中的变量.当我编译时,我得到以下错误指向"check [c] = cval;" 线:
错误C3867:'acc :: check':函数调用缺少参数列表; 使用'&acc :: check'创建指向成员的指针
错误C2109:下标需要数组或指针类型
注意:我已经在程序的其他地方将C初始化为0.它可能会抛出错误,因为我给地址一个变量而不是一个整数,但是当我用一个整数替换变量时,我仍然得到相同的错误.
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <cstring>
using namespace std;
class acc
{
public:
void add_Cval(double cval);
private:
vector<double> check(); //vector of all checks
int c; //loop marker for cvals
};
void acc::add_Cval(double cval)
{
check[c] = cval;
c++;
}
Run Code Online (Sandbox Code Playgroud)
vector<double> check();不是你想的那样.你刚才宣布了一个名为函数check返回一个vector<double>.像这样摆脱括号vector<double> check;.
此外,你vector<double>是空的,你需要给它一些空间,如果你想做check[c] = cval;(或使用check.push_back(cval);),在构造函数中分配空间(使用"初始化列表",因为它是他们的用途):
例:
acc(int vecsize) : check(vecsize), c(0) {}
Run Code Online (Sandbox Code Playgroud)
您可能还希望在向其check[c]分配任何内容之前确保向量中的有效位置.