- 内部定义枚举类,对状态进行描述
在源码中,对于状态函数的msg2都赋值了默认参数,如下所示。java中因为默认参数和方法重载同时出现的时候有二义性的问题,而且java本身就减少了很多特性,所以,我们此处通过重载来解决默认参数的问题。
啊,翻译c++对我有难度,我的c++还给了老师,我对不起高老师,老师一定不希望我曝光他的名字,哭泣了
// Return error status of an appropriate type.
static Status NotFound(const Slice& msg, const Slice& msg2 = Slice()) {
return Status(kNotFound, msg, msg2);
}
十级警告!!!!
今天遇到了一个问题,在Status头文件中,声明了构造函数(注意!是声明,没有实现),而且是private类型的,且在这个类中的其他地方还调用了这个构造函数。我把他翻译为java的话,如果使用抽象类,则定义构造函数的时候必须实现,类的构造函数不能使用abstract关键字修饰。如果定义为接口的话,里面还有其他的函数是有函数体的,如果定义为普通类,则构造函数更应该有函数体了,场面一时陷入僵局,等我回头再解决这个问题。
解决问题:由于这个头文件只在status.cc中被引用了,没有第二个cpp文件引用,因此我就直接把实现写在这个类里面了。这真不是个好的解决方法,违背了作蛰将这个类作为基类,其他实现类自定义构造函数、toString函数的实现的初衷,但是,么的办法呀。
class LEVELDB_EXPORT Status