文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>显式禁用不需要的隐式生成函数

显式禁用不需要的隐式生成函数

时间:2010-09-20  来源:zyd_cu

对于构造函数,拷贝构造函数,赋值运算符等,如果类没有显示声明,则系统会为类生成默认的版本,如果类不想使用隐式生成的默认版本,则应该显示的禁用。如下例,对于NoAssign类,我们不想对其使用赋值运算符(如它是一个数组类型,而默认数组类型是不支持赋值的),那么我们就应该在类中显示的禁用赋值运算符。

#include <iostream>
using namespace std;

class NoAssign {
private:
    NoAssign& operator=(const NoAssign& na);
};


将赋值运算函数定义为private,即可防止其被调用,但类的成员函数和友元还是能够访问,故仍然是不安全的。可以通过一种巧妙的方式,即声明operator=,但不对其进行实现。这样,当用户试图对NoAssign进行赋值时,编译器会报错;当类的成员或友元,访问operator=时,连接器会报错。

相关阅读 更多 +
排行榜 更多 +
旋鹿钢琴游戏

旋鹿钢琴游戏

音乐节奏 下载
vivo半世界之旅手游

vivo半世界之旅手游

模拟经营 下载
卡牌潜行者完整免费版

卡牌潜行者完整免费版

冒险解谜 下载