当前位置:  开发笔记 > 编程语言 > 正文

你能用C++调用实例化对象的类构造函数表达吗?

如何解决《你能用C++调用实例化对象的类构造函数表达吗?》经验,为你挑选了2个好方法。

创建类的实例后,我们可以显式调用构造函数吗?例如

class A{
    A(int a)
    {
    }
}

A instance;

instance.A(2);

我们可以这样做吗?



1> Michael Plat..:

您可以使用新的展示位置:http://en.wikipedia.org/wiki/Placement_new允许

new (&instance) A(2);

但是,从您的示例中,您将在对象上调用两次构造函数,这是非常糟糕的做法.相反,我建议你做

A instance(2);

Placement new通常仅在您需要预分配内存时使用,例如在自定义内存管理器中.



2> brofield..:

没有.

为集合创建一个方法并从构造函数中调用它.此方法也将在稍后提供.

class A{
    A(int a) { Set(a); }
    void Set(int a) { }
}

A instance;

instance.Set(2);

您可能还需要默认值或默认构造函数.


没错,但即使这是OP所要求的,它几乎不是正确的事情.
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有