指向struct的成员变量的指针

时间:2013-03-21 15:16:12

标签: c++ pointers struct

class Main
{
  Struct BranchSub
  {
    Sub()
    {
      subName[0] = '\0';
    }
    char subName[20];
  };

  struct MainSub
  {
  Sub sub[20];
  };
};

我希望有一个方法在subName与给定文本匹配时返回指针subName。 例如:

MainSub test;
if(strcmp(test.BranchSub[5].subName, "Hello") == 0);//return pointer to `test.Branchsub[5].subName`

有可能吗? 还是有其他方法可以达到预期的效果?

1 个答案:

答案 0 :(得分:1)

是的,可以使用test.BranchSub[5].subName

对于问题的第二部分,您应该使用std::string

class Main
{
  struct BranchSub
  {
    std::string subName;
  };

  struct MainSub
  {
    BranchSub sub[20];
  };
};

然后

MainSub test;
if(test.sub[5].subName == "Hello")

更清楚。

您甚至可以使用std::vector<BranchSub>代替BranchSub sub[20]