gpt4 book ai didi

c++ - 通过C++中的变量访问结构中的成员

转载 作者:行者123 更新时间:2023-12-01 12:04:46 25 4
gpt4 key购买 nike

我有两个成员的结构,例如:

struct DataSet {
int x;
int y;
};

...,而且我必须以一种方法来访问它们,但一次只能访问一个,例如:
void foo(StructMember dsm) { // ("StructMember" does not exist)
DataSet ds;
ds.x = 4;
ds.y = 6;

std::cout << ds.dsm * ds.dsm << std::endl;
}
foo(x);
foo(y);

我希望有的输出:
16
36

当我必须解决这样的问题时该怎么办?是否存在可以访问成员的数据类型?

最佳答案

是的,您可以使用指向成员的指针。该类型的语法为TypeOfMember TypeOfStruct::*,要访问您可以执行struct_variable.*pointer_variable

using StructMember = int DataSet::*;  // Pointer to a member of `DataSet` of type `int`

void foo(StructMember dsm) {
DataSet ds;
ds.x = 4;
ds.y = 6;

std::cout << ds.*dsm * ds.*dsm << std::endl;
}

int main() {
foo(&DataSet::x);
foo(&DataSet::y);
}

关于c++ - 通过C++中的变量访问结构中的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60981965/

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