尝试了解Arduino IDE的SDFat库的功能。我偶然发现了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行有两个构造函数(如果有的话)。
我的理解受限于这里缺乏对定义/声明的语法理解。感谢帮助。
由于
答案 0 :(得分:2)
:public Fatfile
表示课程SdBaseFile
继承自班级FatFile
SdBaseFile
时,您可以选择任何这些构造函数。答案 1 :(得分:2)
:public Fatfile
表示SdBaseFile
公开继承自Fatfile
。
这实际上称为is-a
关系,即SdBaseFile
是 - Fatfile
。您可以使用Fatfile *
指向SdBaseFile
。
有两种类型的构造函数,一种不带任何参数,另一种带两个参数,这两个参数实际上是传递给这个类SdBaseFile
的基类的。
答案 2 :(得分:1)
请记住'SdBaseFile(){}'是默认构造函数。这总是在一个类中定义,通常当一个框架不希望调用它的默认构造函数时,它将是一个私有构造函数。
其他构造函数似乎是你想要使用的。由于默认构造函数似乎没有做任何事情,除了构造一个没有与之关联的文件的类。如果我知道FatFile课程中的内容,我对此的印象会发生变化。