3

C++での継承の構文を理解しています。

class DerivedClassName : public BaseClassName {}

しかし、プログラムで私はそのような文字列を見つけました:

class ComplexNumberTest : public CppUnit::TestCase {

そして私はそれが何を意味するのか理解していません。ComplexNumberTestそれがのサブクラスであることは明らかですが、彼らはCppUnit何をTestCaseしていますか?

それはクラスのメソッドをCppUnit::TestCase意味すると思いますが、メソッドのサブクラスである必要がありますか?TestCaseCppUnitDerivedClassName

誰かがそれを手伝ってくれませんか?

4

2 に答える 2

7

CppUnitは名前空間であり、ComplexNumberTestはCppUnit名前空間から派生したTestCaseのクラスです。

コードには、次のようにTestCaseがあります。

namespace CppUnit
{
  class TestCase
  {
    // blah blah
  };
}

または、TestCaseは、パブリックアクセスを持つCppUnit内のネストされたクラス(タイプ)である可能性があります(PeterWoodに感謝)

class CppUnit
{
public:
  class TestCase
  {
    // blah blah
  };
};

class ComplexNumberTest : public CppUnit::TestCase
{
   // also blah
};
于 2013-01-15T08:28:36.503 に答える
2

CppUnitはnamepsaceであるか、TestCaseはCppUnitのネストされたクラスです。

名前空間の場合:名前空間を使用すると、この構文を取り除くことができます。

using namespace CppUnit;

class ComplexNumberTest : public TestCase {

Although, you don't usually want to put using namespace in a header file.-コメントありがとうございます@PeterWood

于 2013-01-15T08:30:23.703 に答える