【发布时间】:2013-04-01 08:40:29
【问题描述】:
我有以下简单的类
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;
}
但是编译器抱怨 gcnew T() 不能用于泛型类型
auto 使用的键是错误的函数expects a trailing return type
【问题讨论】:
-
你为什么将你的成员
m_db声明为IDbConnection却使用m_db = gcnew T()将其视为泛型? -
谢谢,我以后想做类似
"m_db=gcnew SqlConnection()/OracleConnection()/DbOleConnection();"等的事情