C++ 理解C+中的类声明+;
试图了解ArduinoIDE库的功能。我在SDfat.h头文件中偶然发现了这些代码行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
/**
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
SdBaseFile
时,可以选择这些构造函数中的任何一个
:public Fatfile
表示SdBaseFile
公开继承自Fatfile
。
这实际上被称为is-a
关系,即SdBaseFile
is-aFatfile
。您可以使用Fatfile*
指向SdBaseFile
的对象SdBaseFile
请记住,“SdBaseFile(){}”是默认构造函数。这总是在类中定义的,通常当框架不希望调用默认构造函数时,它将是一个私有构造函数
另一个构造函数似乎就是您想要使用的。因为默认构造函数除了构造一个没有相关文件的类之外,似乎什么都不做。如果我知道FatFile类中的内容,我对这一点的印象就会改变。1。这意味着该类派生自另一个名为FatFile的类。2.类可以用两种方式实例化,因此有两个构造函数。我建议你读一本关于C++的好书,任何C++教程/书都会详细回答这些问题。1) 继承权。2) 是的,它们是构造函数,第一个是默认构造函数,另一个是接受输入打开文件的构造函数,在继承和函数重载时读取。有关书籍推荐,请参阅。默认构造函数并不总是定义的:省略时,如果您不定义任何其他构造函数,编译器将仅为您提供默认构造函数。