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;
}
これがプログラムを設計する安全な方法であるかどうか不思議です。私の友人は、父または祖父の父親、または祖父の父親が何らかの形で溢れ出ることを述べました。これはプログラムを設計する安全な方法ですか?
誰でも2セントを出したいですか?
whileループは含まれていません!
何ですか?あなたが投稿したコードは、 'foo ++'のUBを除いて全く問題ありません。 (無限ループもありますが、すでに知っていたと思います) –
レモンズ:これはあまり問題ではありません。コードは完全に役に立たないものを実行し、(未定義の動作とは別に)あまり実際には間違っていません。しかし、あなたはデザインが大丈夫かどうか尋ねます。デザインは目的に関連していなければならず、目的はありません。さらに悪いことに、あなたは派生物であり、名前はすべての子供が必然的に父親であることを意味し、それは彼らが孫になることを必要とします。実際の意味では、それはナンセンスであり、意味のあるデザインを示唆していません。 –
*「父や祖父の父祖、祖父の父」を初期化する*これはどこで行うのですか? –