3

我了解 C++ 中的继承语法:

class DerivedClassName : public BaseClassName {}

但是,在一个程序中,我发现了一个这样的字符串:

class ComplexNumberTest : public CppUnit::TestCase {

我不明白这是什么意思。很明显,这ComplexNumberTest是子类,CppUnitTestCase它们的作用是什么?

我认为这CppUnit::TestCase意味着类TestCase方法,CppUnitDerivedClassName应该是方法的子类?

有人可以帮我吗?

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 是一个命名空间或 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 回答