• C++ 默认构造函数小记


    #include <string>
    #include <map>
    using namespace std;
    
    class A
    {
    public:
        A(string name):name_(name) {}    
        ~A()
        
    private:
        string    name_;
    };
    
    int main()
    {
        map<int, A>        map_;
        map_[1] = A("one_name");
        
        return 0;
    }

    上面这段代码执行的时候会报错,是什么错?应该怎么修改?
    答:是由于A没有默认构造函数而报错,在执行到map_[1]处,会调用A的默认构造函数来构造一个A对象,然后将A("one_name")这个对象再复制给map_[1]这个对象
    修改方法:
    1. 给A添加一个默认的构造函数
    2. 将map_[1] = A("one_name"); 改成 map_.insert(pair<int, A>(1, A("one_name")));

  • 相关阅读:
    NFS服务安装
    Redhat 6.3 yum 本地源配置
    在redhat enterprise linux 6中部署samba
    React
    链表
    map, set
    二叉查找树
    数制间的相互转换
    二维数组
    拖拽
  • 原文地址:https://www.cnblogs.com/emyueguang/p/4139641.html
Copyright © 2020-2023  润新知