c ++:类X没有名为Y的成员

时间:2012-04-01 18:56:52

标签: c++ class

我有这个CRac课程,它给我的成员带来了一些问题。

//Definition TAD CRac.hpp

#ifndef CRAC_H
#define CRAC_H

namespace bblRac{

struct Racional{
    int num, denom;
};  

class CRac{
public:
    CRac();
    void read();
    void asignarVal (const CRac& otroRac);
    void write();
    void add(const CRac& otroRac)const;
private:
    Racional rac;
    void simplif();

}; //End of class CRac
} //End of namespace bblrac

#endif

在ccp文件中我有

#include "CRac.hpp"
using namespace bblRac;

void CRac::add(const CRac& otroRac)const{
    CRac res;
    res.num= rac.num + otroRac.num; //line 98
    res.denom= rac.denom + otroRac.denom;
}

当我运行它时,输出是

CRac.cpp:98: error: ‘class bblRac::CRac’ has no member named ‘num’
CRac.cpp:98: error: ‘const class bblRac::CRac’ has no member named ‘num’
CRac.cpp:99: error: ‘class bblRac::CRac’ has no member named ‘denom’
CRac.cpp:99: error: ‘const class bblRac::CRac’ has no member named ‘denom’

我试图用指针修复它,但它继续给出同样的错误.. 谢谢!

2 个答案:

答案 0 :(得分:3)

这将解决它。

#include "CRac.hpp"
using namespace bblRac;

void CRac::add(const CRac& otroRac)const{
    CRac res;
    res.rac.num= rac.num + otroRac.rac.num; //line 98
    res.rac.denom= rac.denom + otroRac.rac.denom;
}

您的CRac班级包含Racional成员变量,numdenom不是CRac的成员。

答案 1 :(得分:2)

res.rac.num = whatever;
otroRac.rac.num = whatever;

在复制/粘贴到StackOverflow之前,请查看代码。