C++ 理解C+中的类声明+;

C++ 理解C+中的类声明+;,c++,arduino,C++,Arduino,试图了解ArduinoIDE库的功能。我在SDfat.h头文件中偶然发现了这些代码行 /** 1* \class SdBaseFile 2* \brief Class for backward compatibility. 3*/ 4 class SdBaseFile : public FatFile { 5 public: 6 SdBaseFile() {} 7 /** Create a file object and open it in the current workin

试图了解ArduinoIDE库的功能。我在SDfat.h头文件中偶然发现了这些代码行

/**
 1* \class SdBaseFile
 2* \brief Class for backward compatibility.
 3*/
 4 class SdBaseFile : public FatFile {
 5 public:
 6 SdBaseFile() {}
 7 /**  Create a file object and open it in the current working directory.
 8  *
 9  * \param[in] path A path for a file to be opened.
 10  *
 11 * \param[in] oflag Values for \a oflag are constructed by a
 12  * bitwise-inclusive OR of open flags. see
 13  * FatFile::open(FatFile*, const char*, uint8_t).
 14  */
 15 SdBaseFile(const char* path, uint8_t oflag) : FatFile(path, oflag) {}
 16 };
如果有人能解释一下这个类声明是如何工作的

1) 第4行中的
:public Fatfile
有什么作用

2) 为什么6号线和15号线有两名施工人员(如果他们真是这样的话)

我的理解受到对这里的定义/声明缺乏语法理解的限制。谢谢你的帮助

谢谢

  • :public Fatfile
    表示类
    SdBaseFile
    继承自类
    Fatfile
  • 一个类可能有多个构造函数(这不仅是C++,而且是大多数面向对象语言,据我所知)。使用类
    SdBaseFile
    时,可以选择这些构造函数中的任何一个
  • :public Fatfile
    表示
    SdBaseFile
    公开继承自
    Fatfile
    。 这实际上被称为
    is-a
    关系,即
    SdBaseFile
    is-a
    Fatfile
    。您可以使用
    Fatfile*
    指向
    SdBaseFile
    的对象

  • 有两种类型的构造函数,一种不接受任何参数,另一种接受两个参数,这两个参数实际上被传递到派生此类的基类
    SdBaseFile


  • 请记住,“SdBaseFile(){}”是默认构造函数。这总是在类中定义的,通常当框架不希望调用默认构造函数时,它将是一个私有构造函数


    另一个构造函数似乎就是您想要使用的。因为默认构造函数除了构造一个没有相关文件的类之外,似乎什么都不做。如果我知道FatFile类中的内容,我对这一点的印象就会改变。

    1。这意味着该类派生自另一个名为FatFile的类。2.类可以用两种方式实例化,因此有两个构造函数。我建议你读一本关于C++的好书,任何C++教程/书都会详细回答这些问题。1) 继承权。2) 是的,它们是构造函数,第一个是默认构造函数,另一个是接受输入打开文件的构造函数,在继承和函数重载时读取。有关书籍推荐,请参阅。默认构造函数并不总是定义的:省略时,如果您不定义任何其他构造函数,编译器将仅为您提供默认构造函数。