C++11中=delete的巧妙用法 | 您所在的位置:网站首页 › back和delete的区别 › C++11中=delete的巧妙用法 |
C++11中,当我们定义一个类的成员函数时,如果后面使用"=delete"去修饰,那么就表示这个函数被定义为deleted,也就意味着这个成员函数不能再被调用,否则就会出错。 #include class TestClass { public: int func(int data)=delete; }; int main(void) { TestClass obj; obj.func(100); return 0; }编译时直接报错,如下, 这里说个=delete的巧妙用法,在C++里会有很多隐式类型转换,如下代码, #include class TestClass { public: void func(int data) { printf("data: %d\n", data); } }; int main(void) { TestClass obj; obj.func(100); obj.func(100.0); return 0; }输出如下, 我们把参数类型是double的重载函数加上=delete进行修饰,表示这个函数被删除,那么用户就不能使用这个函数了,这样再编译就会出错, 本文是对《C++ Weekly -Ep 107》的简单总结。如果有写的不对的地方,请留言指正,谢谢。 |
CopyRight 2018-2019 实验室设备网 版权所有 |