我有一个数据流,它包含在System::Collections::Queue
. 我的数据源可以将相同的数据输出到多个流,但这样做需要为每个流复制数据。我目前执行以下操作:
void DataGatherer::AddMyDataToQueues(MyData^ data)
{
// Send duplicates to all queues
for( int i = 0; i < m_outputQueues->Count; i++ )
{
AddResultToQueue(gcnew MyData(data), (Queue^)m_outputQueues[i]);
}
}
只要我发送MyData
对象,它就可以正常工作。可以说我也想发送MyOtherData
对象。像这样做一些更通用的事情会很好:
void DataGatherer::AddDataToQueues(Object^ obj)
{
// Send duplicates to all queues
for( int i = 0; i < m_outputQueues->Count; i++ )
{
AddResultToQueue(gcnew Object(obj), (Queue^)m_outputQueues[i]);
}
}
...但这不会编译,因为:
1>.\DataGatherer.cpp(72) : error C3673: 'System::Object' : class does not have a copy-constructor
那么是否可以在不知道其类型的情况下复制对象?..如果是这样,我该怎么做?:)