2个班,都有指针。需要它们指向一种类型的自己,或一种类型的另一种

时间:2014-08-21 19:02:12

标签: c++ pointers types casting

我正在制作链接列表。扇区可以是directorySector或userSector类型。第一个扇区始终是目录扇区,其余部分直到运行时才知道。如何将directorySector链接到userSector?我不能拥有示例代码,因为directorySector类型的扇区并不总是指向另一个directorySector。提前谢谢!

struct directorySector{
directorySector *ptr;
};

1 个答案:

答案 0 :(得分:2)

您可以使用多态来指向带有基类指针的子类。您需要确保跟踪类型,以免混淆类型并访问无效的数据类型。您可能需要转换值以返回子类。

class sector
{
   sector* sectorPtr;
};

class directorySector : public sector
{
   /*WhatEver*/
};

class userSector : public sector
{
   /*Whatever*/
};

int main()
{
   sector mySector;
   directorySector myDirectorySector;
   userSector myUserSector;
   mySector.sectorPtr = &myDirectorySector;
   mySector.sectorPtr = &myUserSector;

   return 0;
}

更多信息:

  

http://www.cplusplus.com/doc/tutorial/polymorphism/