<小时/> 在抽象非实例化类中将相关方法包装为静态与使用命名空间命名约定之间有什么区别?
Utility.h
#pragma once
class Utility : final {
public:
Utility() = delete;
static functionDeclaration();
};
Utility.cpp
#include "Utility.h"
Utility::functionDefinition() {
}
Utility.h
#pragma once
namespace util {
functionDeclaration();
} // namespace util
Utility.cpp
#include "Utility.h"
// Namespace method 1:
using namespace util;
functionDefinition() {
}
// Namespace method 2:
util::functionDefinition() {
}
// Namespace method 3:
namespace util {
functionDefinition() {
}
} // namespace util
两者之间是否存在任何折衷,优势和劣势?编译器如何以不同的方式威胁这些?