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 –