把建構函式設成private

2021-09-02 00:16:06 字數 511 閱讀 9383

在c++11中,把建構函式設成private, 提供靜態的makeshared方法,可以實現在類的建構函式執行完成後,執行特定的操作。

如下所示的**,在sharedtest的建構函式完成後,執行print函式

#include

#include

#include

class

sharedtest

public:~

sharedtest()

private

:void

print()

private

:int x_;

public

:template

<

typename..

. ts>

static std::shared_ptr

makeshared

(ts &&..

. params)};

intmain()

建構函式 訪問許可權private

一 建構函式 具有建構函式的類會在每次建立新物件時先呼叫此方法,所以非常適合在使用物件之前做一些初始化工作。如果子類中定義了建構函式則不會隱式呼叫其父類的建構函式。要執行父類的建構函式,需要在子類的建構函式中呼叫parent construct 如果子類沒有定義建構函式則會如同乙個普通的類方法一樣從...

建立private建構函式的物件

getconstructor 和getdeclaredconstructor 區別 getdeclaredconstructor class.parametertypes 返回指定引數的構造器,包括public的和非public的,當然也包括private的。getdeclaredconstruct...

從private建構函式談單例模式

今天實現乙個單例的時候,想到多執行緒getinstance 時可能會有問題,就查了一下單例的幾種實現方式。有一種被稱為 餓漢式 的實現 1 class manager25 static manager m pinstance 67 public 8 manager getinstance 912 1...