目录
1.单例实现方式
2.静态成员函数方式
3.命名空间方式
工具类的实现方式有很多,下面举例几种常见的方式。
1.单例实现方式
适用场景:工具类需要初始化资源(如加载配置文件、连接池)或有全局状态。
class Logger { public: static Logger& getInstance() { static Logger instance; // C++11 保证线程安全 return instance; } void log(const std::string& msg) { /* ... */ } private: Logger() { /* 初始化资源 */ } Logger(const Logger&) = delete; Logger& operator=(const Logger&) = delete; };2.静态成员函数方式
class StringUtil { private: // 私有构造、析构,禁止new/栈实例 StringUtil() = default; ~StringUtil() = default; // 禁止拷贝移动 StringUtil(const StringUtil&) = delete; StringUtil& operator=(const StringUtil&) = delete; public: static std::string Trim(const std::string& s); static std::vector<std::string> Split(const std::string& s, char sep); };3.命名空间方式
// StringUtils.h #pragma once #include <string> #include <vector> namespace StringUtils { // 静态函数(inline 避免多重定义) inline std::string trim(const std::string& str) { // 实现... } std::vector<std::string> split(const std::string& str, char delimiter); } // StringUtils.cpp #include "StringUtils.h" namespace StringUtils { std::vector<std::string> split(const std::string& str, char delimiter) { // 实现... } }