Я следующий простой класс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(); "и т. Д. –