C++;:定义类函数(预期的主表达式和预期的非限定id) 我在大学里是C++新手;因为这门课的进度会很快加快,所以我将实现类函数和头文件等,但我们需要自学
我得到以下3个错误:C++;:定义类函数(预期的主表达式和预期的非限定id) 我在大学里是C++新手;因为这门课的进度会很快加快,所以我将实现类函数和头文件等,但我们需要自学,c++,function,class,C++,Function,Class,我得到以下3个错误: MagicSquareAlg2.cpp:145:27: error: expected primary-expression before `.' token diagLength = Diagnostics.userInput(*input, &inputFlag); ^ MagicSquareAlg2.cpp:148:49: error: expected primary-expression before `
MagicSquareAlg2.cpp:145:27: error: expected primary-expression before `.' token
diagLength = Diagnostics.userInput(*input, &inputFlag);
^
MagicSquareAlg2.cpp:148:49: error: expected primary-expression before `.' token
vector< vector<int> > magicSquare = MagicSquare.matrixBuild(diagLength);
^
MagicSquareAlg2.cpp:149:13: error: expected unqualified-id before `.' token
Diagnostics.summary(magicSquare, diagLength);
MagicSquareAlg2.cpp:145:27:错误:在“.”标记之前应该有主表达式
diagLength=Diagnostics.userInput(*input,&inputFlag);
^
MagicSquareAlg2.cpp:148:49:错误:应在“.”标记之前使用主表达式
vectormagicSquare=magicSquare.matrixBuild(diagLength);
^
MagicSquareAlg2.cpp:149:13:错误:在“.”标记之前应为非限定id
诊断摘要(magicSquare,diagLength);
这是我的密码。有没有人能给我一些简单的提示,说明我做错了什么(足够让我不必去引用)?我正在尝试的在线教程没有太大帮助
class Diagnostics {
public:
vector< vector<int> > magicSquare;
string diagLengthPrep;
bool* inputFlag;
int diagLength;
int userInput(string diagLengthPrep, bool* inputFlag);
void summary(vector< vector<int> > magicSquare, int diagLength);
};
int Diagnostics::userInput(string diagLengthPrep, bool* inputFlag) {
//Code
}
void Diagnostics::summary(vector< vector<int> > magicSquare, int diagLength) {
//Code
}
class MagicSquare {
public:
int diagLength;
vector< vector<int> > matrixBuild(int diagLength);
};
vector< vector<int> > MagicSquare::matrixBuild(int diagLength) {
//Code
}
void session(string* input, bool inputFlag) {
int diagLength;
while (inputFlag == true) {
//Code
diagLength = Diagnostics.userInput(*input, &inputFlag);
}
vector< vector<int> > magicSquare = MagicSquare.matrixBuild(diagLength);
Diagnostics.summary(magicSquare, diagLength);
}
int main() {
//Code
}
类诊断{
公众:
向量magicSquare;
字符串diagnongthprep;
bool*输入标志;
int诊断长度;
int userInput(字符串diagLengthPrep,bool*inputFlag);
无效摘要(矢量<矢量>magicSquare,int diagLength);
};
int Diagnostics::userInput(字符串diagnongthprep,bool*inputFlag){
//代码
}
无效诊断::摘要(矢量magicSquare,int diagLength){
//代码
}
MagicSquare类{
公众:
int诊断长度;
向量matrixBuild(int-diagnlength);
};
vectorMagicSquare::matrixBuild(int diagLength){
//代码
}
无效会话(字符串*输入,布尔输入标志){
int诊断长度;
while(inputFlag==true){
//代码
diagLength=Diagnostics.userInput(*input,&inputFlag);
}
vectormagicSquare=magicSquare.matrixBuild(diagLength);
诊断摘要(magicSquare,diagLength);
}
int main(){
//代码
}
您试图在没有实例的情况下调用非静态成员函数。要解决此问题,请构造类的实例并对其调用函数:
void session(string* input, bool inputFlag) {
int diagLength;
Diagnostics diags; //here
while (inputFlag == true) {
//Code
diagLength = diags.userInput(*input, &inputFlag);
}
MagicSquare ms; //here
vector< vector<int> > magicSquare = ms.matrixBuild(diagLength);
diags.summary(magicSquare, diagLength);
}
void会话(字符串*输入,bool输入标志){
int诊断长度;
诊断诊断;//此处
while(inputFlag==true){
//代码
diagLength=diags.userInput(*input,&inputFlag);
}
MagicSquare ms;//此处
vectormagicSquare=ms.matrixBuild(diagLength);
诊断摘要(magicSquare,诊断长度);
}
了解类与类实例(对象)之间的区别。