使用指向类

时间:2015-09-04 18:35:36

标签: c++ class pointers data-structures member-variables

我在这里遇到一些麻烦,使用C ++通过指针访问成员变量。

假设我有以下类,它有一些输出和一个唯一标记。

class CSource
{
   public:
   int tag;
   double output;
}

我想在类似

的结构中存储指向类和标记的指针
struct foo
{
    CSource *source;
    int sourceTag;
}

然后在第二个类中,有一个成员函数,它将指向CSource类的指针作为参数

class CDest
{
    public:
    void addSource(CSource *sourcePtr);
}

该成员函数将指针和标记存储到结构

void CDest::addSource(CSource *sourcePtr)
{
    foo temp;
    foo.source = sourcePtr;
    foo.tag-> sourcePtr.tag; 
}

最后一行给出了错误“错误:表达式必须有指针类型。”我只想要原始标记值而不是指针,因为下一步是搜索列表以查看是否已添加该源,添加它,然后使用反函数搜索列表并删除struct是否在那里使用标签。

2 个答案:

答案 0 :(得分:1)

您应使用变量名,而不是类名:

foo temp;
temp.source = sourcePtr;
temp.tag = sourcePtr->tag; 

答案 1 :(得分:0)

试试这个“foo.tag = sourcePtr-> tag”而不是“foo.tag-> sourcePtr.tag”。

之后你不会收到编译错误。

顺便说一下,如果你的动机是唯一地插入“CSource”对象,你可以使用std :: set而不是使用链表。