使用指向类的指针访问成员变量
Accessing member variables with a pointer to a class
我在这里遇到了一些麻烦,使用c++通过指针访问成员变量。
假设我有下面的类,它有一些输出和一个唯一的标记。
class CSource
{
public:
int tag;
double output;
}
我想在结构体中存储一个指向类和标签的指针,就像这样
struct foo
{
CSource *source;
int sourceTag;
}
然后在第二个类中,有一个成员函数,该函数以指向CSource类的指针作为参数
class CDest
{
public:
void addSource(CSource *sourcePtr);
}
成员函数将指针和标记存储到struct
中void CDest::addSource(CSource *sourcePtr)
{
foo temp;
foo.source = sourcePtr;
foo.tag-> sourcePtr.tag;
}
最后一行给出了错误"error: expression must have pointer type."我只想要原始的标签值,而不是指针,因为下一步是搜索一个列表,看看源是否已经被添加,添加它,然后有一个逆函数搜索列表,并删除结构体,如果它在那里使用标签。
应该使用变量名,而不是类名:
foo temp;
temp.source = sourcePtr;
temp.tag = sourcePtr->tag;
试试这个"foo "。" tag = sourcePtr->tag"而不是"foo.tag->sourcePtr.tag".
在此之后您将不会得到编译错误。
顺便说一下,如果你的目的是唯一地插入"CSource"对象,你可以使用std::set而不是使用链表。
相关文章:
- 通过指向指针数组的指针访问子类的属性
- 使用指针访问数组中的对象数据成员
- 无法通过指针访问对象的成员
- decltype:使用指针访问类的静态成员
- 是否可以使用指针访问变量以避免直接编辑变量?
- 为什么 C++ 地址中的矢量无法通过原始指针访问
- 使用指针访问数组元素时出现意外结果
- 使用指针访问数组的值
- C++继承从基类指针访问派生类中的非虚拟函数
- 如何使用指针访问成对向量的元素
- 为什么有些库提供无指针访问,而另一些库则不提供
- 如何通过引用或指针访问二维矢量
- 使用指针访问参数接收的结构中的元素时内存泄漏
- 我正在学习C++,我不能使用指针访问参考吗?(举个例子)
- 复制堆栈上的成员值或使用指针访问它?
- C++娜娜 如何从全局列表框*指针访问列表框内的索引 0 上的按钮?
- 通过此指针访问时的成员差异和自身的成员指针(简单的 QT 示例问题)
- 从指针访问 Kaguya Lua 状态
- 说明通过指针访问非静态类成员函数
- 有没有办法使用初始化到第一行的指针访问 2d 数组的第二行?