如何将类类型作为参数传递给函数模板以进行新操作?

问题描述 投票:0回答:1

我有一段C ++代码:

#include <iostream>
#include <string>
#include <map>

static counter = 0;

class Probe
{
private:
    int supply_;
    Probe(const Probe&);

public:
    Probe()
    {
        supply_ = 10000;
    }

    int get_supply()
    {
        return supply_;
    }

};

/********************************************************************************
template<class T> T Create(int counter, T& produced)
{
    produced[counter] = new ; // ??????????????????????????????????????
    return produced;
}
************************************************************************************/

std::map<int, Probe*> CreatInitWorkers(int counter, std::map<int, Probe*> &init_workers) 
{
    init_workers[counter] = new Probe(); 
    return init_workers;
}


int main()
{ 
    std::map<int, Probe*> workers;
    for (int i = 0; i < 12; i++)
    {
        workers = CreatInitWorkers(worker_counter++, workers);
    }

    for (auto it : workers)
    {
        std::cout << it.first << std::endl;
    }
}

我想像CreatInitWorkers函数一样创建一个模板函数(如星间所示)。但是我不知道如何将Probe类转换为new操作,因为对于我的程序来说,还需要其他一些类。有什么办法可以做到吗?谢谢。

c++ class new-operator function-templates
1个回答
5
投票

遵循这些原则:

© www.soinside.com 2019 - 2024. All rights reserved.