gpt4 book ai didi

c++ - 变量声明中结构的范围解析是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:11:02 25 4
gpt4 key购买 nike

我在文件 set_var.h 的 MySQL 源代码中找到了这段代码,但我不确定 ulong SV::*offset 是什么意思。

简而言之,它看起来像:

struct SV {...}

class A {

ulong SV::*offset;

A(ulong SV::*offset_arg): offset(offset_arg) {...}
};

class B {

DATE_TIME_FORMAT *SV::*offset;

B(DATE_TIME_FORMAT *SV::*offset_arg) : offset(offset_arg) {...}
}

等等。

最佳答案

ulong SV::*offset; 是名为 offset 的类 A 的成员,它指向类 的成员>SV 类型 ulong。它是这样使用的:

#include <iostream>

using ulong = unsigned long;
struct SV {
ulong x, y, z;
};

int main()
{
// A pointer to a ulong member of SV
ulong SV::*foo;

// Assign that pointer to y
foo = &SV::y;

// Make an instance of SV to test
SV bar;
bar.x = 10;
bar.y = 20;
bar.z = 30;

// Dereference with an instance of SV
// Returns "20" in this case
std::cout << bar.*foo;

return 0;
}

关于c++ - 变量声明中结构的范围解析是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41581512/

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