gpt4 book ai didi

c++ - "&SomeStruct::member"在 C++ 中是什么意思,其中 "SomeStruct"是一个结构, "member"是它的成员?

转载 作者:行者123 更新时间:2023-11-30 00:40:11 25 4
gpt4 key购买 nike

假设 SomeStruct 定义为:

struct SomeStruct {
int member;
};

这些是什么意思?

  1. &SomeStruct::member
  2. int SomeStruct::*

我遇到了这个,试图输出它的类型信息但仍然无法弄清楚含义。下面是一个工作示例:

#include <iostream>
#include <typeinfo>
using namespace std;
struct SomeStruct {
int member;
};


int main(int argc, const char *argv[])
{
cout << typeid(&SomeStruct::member).name() << endl;
cout << typeid(int SomeStruct::*).name() << endl;
return 0;
}

在我的 MBP 上由 i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664) 编译,输出为:

M10SomeStructi
M10SomeStructi

最佳答案

int SomeStruct::* 被称为“指向成员的指针”,在本例中,是指向 SomeStruct 成员的指针。这不是严格意义上的指向成员函数的指针(尽管这是这种语法最常见的用法)。

&SomeStruct::member 是对 SomeStructmember 成员的引用。

参见 this related question

如果您想了解有关该主题的更完整信息,here's a decent article on the topic .

并且,C++ FAQ lite 中关于该主题的必填部分.

关于c++ - "&SomeStruct::member"在 C++ 中是什么意思,其中 "SomeStruct"是一个结构, "member"是它的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6721370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com