关于 C++ 删除函数的一点问题
之前的项目在C++代码中有用到了 删除函数 。。。
1 namespace Framework 2 { 3 class Utils final 4 { 5 private: 6 Utils() = delete; //删除函数 7 public: 8 9 //-------- 10 // Math 11 //-------- 12 13 // 返回无限制随机数,最大0x7fffffff 14 inline static int random(); 15 16 // 返回指定范围随机数(范围[start, end]) 17 inline static int random(int min, int max); 18 19 // 数值四舍五入取整,支持负数 20 inline static double round(double number); 21 }; 22 }
如上面的代码,当某个函数被赋值为 delete 时,代表着这个函数被声明为了 删除函数,即不可以被调用。而此刻的无参构造函数被声明成为了删除函数,代表着系统也不会为这个类自动生成构造函数,如此当外部使用的时候就强制的不能产生该类的对象。而这么做的原因是因为这个类的所有成员函数都被声明为了静态方法,如此则没必要产生该类的对象,那么就强制用户不能产生该对象。。。