这是设计程序的安全方法吗?

时间:2012-02-02 03:41:58

标签: c++ class

class grandfather
{
  protected:
  int test;
};

class father : grandfather
{
  protected:
  int foo;
};

class child : father
{
  public:
  void stuff();
};

void child::stuff()
{
  test = 5;
  while(test == 5)
  {
    foo++;
  }
}

int main(void)
{
  child childObj;

  childObj.stuff();

  return 0;
}

我只是好奇这是否是设计程序的安全方法。我的一位朋友表示,在父亲或祖父中初始化孩子,或在祖父中父亲,会导致某种溢出。

有人想给他们两分钱吗?

不包括while循环!

3 个答案:

答案 0 :(得分:3)

这没有错(我的意思是,除了你的while循环)。

你有一个带有父类的类,它本身有一个父类。没问题。

答案 1 :(得分:1)

您发布的代码非常好,而您的朋友错了 如果它是一个好的设计,在你告诉我们要求之前不能发表评论,除了语义之外,代码是正确的。

答案 2 :(得分:0)

这对我来说似乎是一种完全善用的继承。我不知道为什么你的朋友会反对它。