C++中的继承语法

Rom*_*man 3 c++ oop inheritance

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

class DerivedClassName : public BaseClassName {}
Run Code Online (Sandbox Code Playgroud)

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

class ComplexNumberTest : public CppUnit::TestCase {
Run Code Online (Sandbox Code Playgroud)

我不明白这意味着什么.很明显,它ComplexNumberTest是子类CppUnitTestCase它们是什么?

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

有人可以帮帮我吗?

bil*_*llz 7

CppUnit是名称空间,ComplexNumberTest是来自CppUnit名称空间的TestCase的派生类.

在您的代码中,您以这种方式拥有TestCase:

namespace CppUnit
{
  class TestCase
  {
    // blah blah
  };
}
Run Code Online (Sandbox Code Playgroud)

或者,TestCase可以是CppUnit中具有公共访问权限的嵌套类(类型)(感谢PeterWood)

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

class ComplexNumberTest : public CppUnit::TestCase
{
   // also blah
};
Run Code Online (Sandbox Code Playgroud)

  • 它可能是一个名称空间,但它可以通过在另一个类中声明的类来实现. (2认同)
  • 甚至是在另一个类中定义的`typedef`. (2认同)