小编Tae*_*las的帖子

你可以使用boost :: shared_ptr作为地图的关键吗?

我可能需要更多地重新考虑我的整体设计,但就目前而言,看起来我可能想做类似的事情:

class A; 
class B;
std::map<boost::shared_ptr<const A>, B> APtrToBMap;
Run Code Online (Sandbox Code Playgroud)

我试过这个,它似乎在一个简单的情况下工作(编译器没有抱怨,简单的测试似乎工作).但我对这种方法有了第二个想法.我怀疑那里有一些我不知道的陷阱.

那么,上述实际意义上的有效吗?或者,当我这样做时,我不知道有什么缺陷吗?

c++ stdmap shared-ptr

13
推荐指数
1
解决办法
4332
查看次数

在默认构造函数中明确设置初始化列表是有优点还是缺点?

显式为C++对象构造函数提供FULL初始化列表是否有任何优点或缺点?(尽管我们只是使用默认构造函数,但是你已经列出了所有成员的全部内容?)

例如,如果我有对象:

class MyObject
{
    public: 
        MyObject();
    private:
        double _doub;
        Foo _foo;
        std::set<int> _intSet;
        int _int;
        Bar _bar;
}
Run Code Online (Sandbox Code Playgroud)

与我的构造函数是否有任何区别:

MyObject::MyObject():
    _doub(1.4), _foo("me"), _intSet(),
    _int(5), _bar() {};
Run Code Online (Sandbox Code Playgroud)

与仅列出我特别需要设置数据的对象(或调用非默认构造函数):

MyObject::MyObject():
    _doub(1.4), _foo("me"), _int(5) {};
Run Code Online (Sandbox Code Playgroud)

如果Class只有它使用默认构造函数的对象,我是否应该设置初始化列表?

例如:

class MyObject
{
    public: 
        MyObject();

    private:
        Foo _foo;
        std::set<int> _intSet;
        Bar _bar;
}
Run Code Online (Sandbox Code Playgroud)

是否有一个像这样的构造函数?

MyObject::MyObject():
    _foo(), _intSet(), _bar() {};
Run Code Online (Sandbox Code Playgroud)

谢谢.

c++ initialization-list

3
推荐指数
1
解决办法
1156
查看次数

标签 统计

c++ ×2

initialization-list ×1

shared-ptr ×1

stdmap ×1