gpt4 book ai didi

c++ - 用模板方法重写虚方法

转载 作者:可可西里 更新时间:2023-11-01 17:41:49 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Can a member function template be virtual?

在基类中,函数 my_func 被定义为虚函数。但是,在派生类中,我希望 my_func 成为模板方法。这可能吗?

好像不是。我收到错误“无法分配抽象类型的对象”,我认为这与编译器不承认虚拟 my_func 的覆盖有关基类。这是否揭示了糟糕的设计?

非常感谢。

更新:感谢您的回答。你们中的一些人建议我应该发布一些代码,所以就在这里。在基类中:

virtual void Fill(EventInfo* info, EasyChain* tree, vector<Muon*>& muons, vector<Electron*>& electrons, vector<Jet*>& jets, LorentzM& met) = 0;

但是在派生类中我想要:

template<typename _Jet> 
void Fill(EventInfo* info, EasyChain* tree, vector<Muon*>& muons_in, vector<Electron*>& electrons_in, vector<_Jet>& jets_in, LorentzM& met){

根据您的回答,我了解到解决该问题的方法是在派生类中定义另一个函数:

void Fill(EventInfo* info, EasyChain* tree, vector<Muon*>& muons, vector<Electron*>& electrons, vector<Jet*>& jets, LorentzM& met){
//
}

但是,对于 _JetJet* 的情况,此函数和模板函数是相同的,这不会也是一个问题吗?

有些人在这里提出了一个设计问题,我想这是真的,我将不得不考虑如何解决这个问题。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com