我需要创建一个程序,从用户那里得到一小部分,然后简化它。
我知道怎么做并且完成了大部分代码但是我一直收到这个错误“错误:在'。'标记之前预期不合格的id。”
我已经声明了一个名为ReducedForm的结构,它包含简化的分子和分母,现在我想要做的是将简化值发送到此结构。 这是我的代码;
在Rational.h中;
#ifndef RATIONAL_H
#define RATIONAL_H
using namespace std;
struct ReducedForm
{
int iSimplifiedNumerator;
int iSimplifiedDenominator;
};
//I have a class here for the other stuff in the program
#endif
在Rational.cpp中;
#include <iostream>
#include "rational.h"
using namespace std;
void Rational :: SetToReducedForm(int iNumerator, int iDenominator)
{
int iGreatCommDivisor = 0;
iGreatCommDivisor = GCD(iNumerator, iDenominator);
//The next 2 lines is where i get the error
ReducedForm.iSimplifiedNumerator = iNumerator/iGreatCommDivisor;
ReducedForm.iSimplifiedDenominator = iDenominator/iGreatCommDivisor;
};
答案 0 :(得分:4)
您尝试使用.
而不是::
静态访问结构,其成员static
也是如此。实例化ReducedForm
:
ReducedForm rf;
rf.iSimplifiedNumerator = 5;
或将成员更改为static
,如下所示:
struct ReducedForm
{
static int iSimplifiedNumerator;
static int iSimplifiedDenominator;
};
在后一种情况下,您必须使用::
而不是.
来访问成员。我非常怀疑后者是您的目标;)
答案 1 :(得分:4)
结构的名称是ReducedForm
;你需要创建一个对象(struct
或class
的实例)并使用它。这样做:
ReducedForm MyReducedForm;
MyReducedForm.iSimplifiedNumerator = iNumerator/iGreatCommDivisor;
MyReducedForm.iSimplifiedDenominator = iDenominator/iGreatCommDivisor;
答案 2 :(得分:3)
ReducedForm
是一种类型,所以你不能说
ReducedForm.iSimplifiedNumerator = iNumerator/iGreatCommDivisor;
您只能在实例上使用.
运算符:
ReducedForm rf;
rf.iSimplifiedNumerator = iNumerator/iGreatCommDivisor;