В C# я использую Func для замены заводов. Например:Как имитировать Func <T1, T2, TResult> в C++?
class SqlDataFetcher
{
public Func<IConnection> CreateConnectionFunc;
public void DoRead()
{
IConnection conn = CreateConnectionFunc(); // call the Func to retrieve a connection
}
}
class Program
{
public void CreateConnection()
{
return new SqlConnection();
}
public void Main()
{
SqlDataFetcher f = new SqlDataFetcher();
f.CreateConnectionFunc = this.CreateConnection;
...
}
}
Как смоделировать код выше на C++?
+1, но 'boost :: function' (обратите внимание на указатель). –
avakar
Хорошая точка. И вместо этого вы можете захотеть вернуть умный указатель, чтобы быть явным о праве собственности. –
Такой быстрый ответ. Благодаря! – Zach