2014-07-01 36 views
0

在WinRT中構造類型時,explicit關鍵字與標準C++類型具有相同的功能和價值嗎? IE瀏覽器。 WinRT ref類型是否支持與標準C++類型相同的隱式轉換?WinRT類是否需要和/或推薦使用「顯式」關鍵字?

#pragma once 

#include <collection.h> 
#include <ppltasks.h> 

using namespace Platform; 

namespace RuntimeComponent2 
{ 
    public ref class Class1 sealed 
    { 
    public: 
     explicit Class1(Platform::String^ foo); // does the 'explicit' keyword here have any value? 
    private: 
     Platform::String^ m_foo; 
    }; 

    Class1::Class1(Platform::String^ foo) 
     : m_foo(foo) 
    { 
    } 
} 

回答

1

我在C++/CX專家,但據我所知裁判類只能被實例化大街ref new。隱式轉換otoh只能通過創建(概念上)駐留在堆棧上的對象來實現。

因此,如果我對ref new正確,隱式轉換不能與ref class對象發生,並且explicit關鍵字在其構造函數(和C++ 11轉換運算符)中沒有用處。

+0

具體而言,C++/CX中的ctors(非默認值)轉換爲類工廠方法,因此語法相當多。他們不是真的。 –

相關問題