gpt4 book ai didi

C++ 头文件模板

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:53:56 26 4
gpt4 key购买 nike

我在头文件中使用模板。我正在使用的函数是递归的,我想在函数之外保留两个变量以进行比较。这是我的代码(注意:不编译):

#include "Position.h"
#ifndef _SOLVER_H
#define _SOLVER_H

class Solver{
public:
template<typename T>
int EvaluatePosition(T &p, bool me) {
int score = 0;
if(p.isGameOver()) {
return p.score(me);
}
else {
std::vector<T> nextMoves = p.getNextPositions();
for(int i=0; i != nextMoves.size(); i++) {
score += EvaluatePosition(nextMoves[i],!me);
if(score > maxScore) {
p.display();
maxScore = score;
maxP = p;
p.display();
}
}
return score;
}
}

T maxP; // Want this to be the same Type T that is used in the function
int maxScore;
};

#endif

我正在尝试创建一个与函数中使用的 T 具有相同泛型类型的变量,以便我可以保存一些数据。这可能吗?如果可能,如何实现?

最佳答案

您可以使整个类成为模板化类,而不仅仅是函数。

template< class T > class Solver{
//here goes your function that takes the argument of T class
int EvaluatePosition(T &p, bool me){
//...
}

T maxP; //here goes your variable
int maxScore;
};

关于C++ 头文件模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12705469/

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