1. 程式人生 > >c++中 explicit 的作用

c++中 explicit 的作用

pre test 一個 調用 顯示 bsp 我們 spa pan

在c++中,只傳一個參數的構造函數定義了一個缺省的轉換操作(隱式轉換),即將該構造函數對應數據類型的數據轉換為該類的對象,如下所示

class A
{
public:
    A(int a);
}

A test = 10; // right,隱士轉換,等同於 A tmp(10); A test = tmp;

為避免上述操作的發生,我們添加關鍵字explicit,指定顯示調用構造函數
class A
{
public:
    explicit A(int a);
}

A test = 10; // error

c++中 explicit 的作用