如何将数据成员名称作为参数传递给另一个参数?

特雷弗·希基(Trevor Hickey)

给定这样的结构:

struct Foo{
    std::string name;
    int value;
};

我正在寻找一种将类型的实例
以及数据成员名称
传递为单独参数的方法。

尽管这是错误的语法,但我认为它有助于说明我要完成的工作:

template<typename MemberName>
void Print(Foo foo, MemberName member_name){
    std::cout << foo.member_name << '\n';  
}

int main(){

    Foo foo{"name",100}; //create instance

    Print(foo,.name);  //prints name
    Print(foo,.value); //prints 100
}

如何在C ++中实现?

此外,我无权修改该类型的减速度。

卡诺诺斯

您可能正在寻找指向成员的指针:

#include <string>
#include <iostream>

struct Foo{
  std::string name;
  int value;
};

template<typename MemberType>
void Print(Foo foo, MemberType Foo::* member_name){
  std::cout << foo.*member_name << '\n';  
}

int main(){

  Foo foo{"name",100}; //create instance

  Print(foo, &Foo::name);  //prints name
  Print(foo, &Foo::value); //prints 100
}

编辑:当然,指向成员的指针在c ++中并不常见,在这种特定情况下,仅传递实际成员值(如Steephen建议)会更好(但也许您想在更复杂的情况下使用它们)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将输出作为参数传递给另一个命令?

来自分类Dev

如何将模板内部的模板作为模板模板参数传递给另一个模板?

来自分类Dev

如何将一个函数作为参数传递给另一个函数

来自分类Dev

如何将以args作为参数的成员函数传递给另一个成员函数?

来自分类Dev

如何将指针传递给在另一个结构内部声明的结构作为函数参数?

来自分类Dev

如何将命令输出作为多个参数传递给另一个命令

来自分类Dev

如何将可变函数参数作为参数传递给另一个函数?

来自分类Dev

Ember.js如何将一个组件作为参数传递给另一个组件?

来自分类Dev

如何将换行符分隔的列表作为参数传递给另一个命令?

来自分类Dev

如何将包含列表的变量作为参数传递给另一个python脚本

来自分类Dev

如何将tanh函数作为参数传递给另一个函数?

来自分类Dev

Azure ARM模板-如何将链接模板的输出变量作为参数传递给另一个模板?

来自分类Dev

如何将非静态成员函数作为模板参数传递给另一个成员函数?

来自分类Dev

如果有对象被创建为另一个类的数据成员,如何将值传递给参数化的构造函数?

来自分类Dev

Python:如何将函数作为参数传递给另一个函数,而不自动运行它

来自分类Dev

R-如何将一个函数作为参数传递给另一个函数?

来自分类Dev

如何将参数传递给另一个具有相同名称的内部函数?

来自分类Dev

如何将终端命令作为参数传递给另一个命令

来自分类Dev

asp.net将方法名称作为参数传递给另一个方法

来自分类Dev

如何调用名称作为文本传递给另一个变量的变量的值?

来自分类Dev

如何将函数作为参数传递给另一个函数?

来自分类Dev

Ember.js如何将一个组件作为参数传递给另一个组件?

来自分类Dev

如何将特定类的方法名称作为另一个方法的参数传递

来自分类Dev

Android-如何将位图列表传递给另一个Activity作为参数

来自分类Dev

如何将泛型函数作为参数传递给另一个函数?

来自分类Dev

如何将一个过程的输出作为参数传递给 tcl 中的另一个过程

来自分类Dev

如何将模板化类实例作为模板参数传递给另一个模板?

来自分类Dev

如何将参数传递给作为另一个函数参数的函数

来自分类Dev

如何将ajax结果作为参数传递给另一个ajax以发出请求

Related 相关文章

  1. 1

    如何将输出作为参数传递给另一个命令?

  2. 2

    如何将模板内部的模板作为模板模板参数传递给另一个模板?

  3. 3

    如何将一个函数作为参数传递给另一个函数

  4. 4

    如何将以args作为参数的成员函数传递给另一个成员函数?

  5. 5

    如何将指针传递给在另一个结构内部声明的结构作为函数参数?

  6. 6

    如何将命令输出作为多个参数传递给另一个命令

  7. 7

    如何将可变函数参数作为参数传递给另一个函数?

  8. 8

    Ember.js如何将一个组件作为参数传递给另一个组件?

  9. 9

    如何将换行符分隔的列表作为参数传递给另一个命令?

  10. 10

    如何将包含列表的变量作为参数传递给另一个python脚本

  11. 11

    如何将tanh函数作为参数传递给另一个函数?

  12. 12

    Azure ARM模板-如何将链接模板的输出变量作为参数传递给另一个模板?

  13. 13

    如何将非静态成员函数作为模板参数传递给另一个成员函数?

  14. 14

    如果有对象被创建为另一个类的数据成员,如何将值传递给参数化的构造函数?

  15. 15

    Python:如何将函数作为参数传递给另一个函数,而不自动运行它

  16. 16

    R-如何将一个函数作为参数传递给另一个函数?

  17. 17

    如何将参数传递给另一个具有相同名称的内部函数?

  18. 18

    如何将终端命令作为参数传递给另一个命令

  19. 19

    asp.net将方法名称作为参数传递给另一个方法

  20. 20

    如何调用名称作为文本传递给另一个变量的变量的值?

  21. 21

    如何将函数作为参数传递给另一个函数?

  22. 22

    Ember.js如何将一个组件作为参数传递给另一个组件?

  23. 23

    如何将特定类的方法名称作为另一个方法的参数传递

  24. 24

    Android-如何将位图列表传递给另一个Activity作为参数

  25. 25

    如何将泛型函数作为参数传递给另一个函数?

  26. 26

    如何将一个过程的输出作为参数传递给 tcl 中的另一个过程

  27. 27

    如何将模板化类实例作为模板参数传递给另一个模板?

  28. 28

    如何将参数传递给作为另一个函数参数的函数

  29. 29

    如何将ajax结果作为参数传递给另一个ajax以发出请求

热门标签

归档