具有静态函数的抽象类与命名空间中的常规函数​​之间的差异?

时间:2018-03-10 23:05:07

标签: c++ static namespaces abstract-class

<小时/> 在抽象非实例化类中将相关方法包装为静态与使用命名空间命名约定之间有什么区别?

Class Wrapper

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

两者之间是否存在任何折衷,优势和劣势?编译器如何以不同的方式威胁这些?

0 个答案:

没有答案