错误:'。'之前的预期unqualified-id令牌//(struct)

时间:2013-08-05 16:02:01

标签: c++ struct

我需要创建一个程序,从用户那里得到一小部分,然后简化它。

我知道怎么做并且完成了大部分代码但是我一直收到这个错误“错误:在'。'标记之前预期不合格的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;
};

3 个答案:

答案 0 :(得分:4)

您尝试使用.而不是::静态访问结构,其成员static也是如此。实例化ReducedForm

ReducedForm rf;
rf.iSimplifiedNumerator = 5;

或将成员更改为static,如下所示:

struct ReducedForm
{
    static int iSimplifiedNumerator;
    static int iSimplifiedDenominator;
};

在后一种情况下,您必须使用::而不是.来访问成员。我非常怀疑后者是您的目标;)

答案 1 :(得分:4)

结构的名称是ReducedForm;你需要创建一个对象structclass的实例)并使用它。这样做:

ReducedForm MyReducedForm;
MyReducedForm.iSimplifiedNumerator = iNumerator/iGreatCommDivisor;
MyReducedForm.iSimplifiedDenominator = iDenominator/iGreatCommDivisor;

答案 2 :(得分:3)

ReducedForm是一种类型,所以你不能说

ReducedForm.iSimplifiedNumerator = iNumerator/iGreatCommDivisor;

您只能在实例上使用.运算符:

ReducedForm rf;
rf.iSimplifiedNumerator = iNumerator/iGreatCommDivisor;