gcnew操作我有以下簡單的類泛型類型
generic<typename T> where T:IDbConnection ref class CDbConnection
{
private:
IDbConnection^m_db;
ConnectionState^ m_originalConnState;
public:
CDbConnection();
bool Connect(String^connStr);
bool Exists(int id);
auto GetAllData(String^ tableStr);
~CDbConnection();
!CDbConnection();
};
,這裏是我的構造
generic<typename T> CDbConnection<T>::CDbConnection()
{
m_db=gcnew T();
m_originalConnState=m_db->State;
}
但是編譯器會抱怨< 1> gcnew T()不能使用對於通用型 < 2>auto
使用中的關鍵是錯誤的功能expects a trailing return type
爲什麼你聲明你的成員'm_db'爲'IDbConnection',而把它當作一個泛型使用'm_db = gcnew T()'? –
謝謝,我想稍後再做這樣的'''m_db = gcnew SqlConnection()/ OracleConnection()/ DbOleConnection();''etc –