添加到现有项目时,保持一致的风格很重要。但是,当项目的标准和库的标准之间存在明显差异时,如果在新项目中从库中大量继承,该怎么办?
我正在开发一个具有特定编码风格的项目,特别是在涉及如何命名这些类中的类和方法时。然而,该项目的一个模块 UI 严重依赖外部库,并且该模块中的大多数类将重载该库。在这种情况下,它是 Qt,但它可以是任何东西。
在这种情况下,是坚持 API 使用的风格还是使用项目风格的新功能更好?例如,Qt 使用camelCase
它的函数声明,而这个项目使用UpperCase
. 考虑这样的事情:
class MyNewWidget : public QWidget {
Q_OBJECT
public:
void setVisible(bool visible); // QWidget override
void SetNewFeature(std::string feature_key); // New function
bool visibility() const; // I know you can't override that, but bear with me
std::string GetNewFeature() const; // propertyName() vs GetPropertyName()
};
这感觉与从使用lower_case
. 在这种情况下,至少在某些情况下有一些很好的理由遵循约定,例如,当 typedef'ingiterator
类型时,或者如果您希望您的begin
/ end
/swap
函数可以被<algorithm>
et al 使用。
但我在这个墙上。