gpt4 book ai didi

c++ - (Re)named std::pair 成员中断初始化

转载 作者:行者123 更新时间:2023-11-30 02:25:39 26 4
gpt4 key购买 nike

有以下类型:

typedef pair<double, double> MinMax; ///< first - Min, second - Max

并且用它初始化工作正常:

const MinMax mInMinMax[FunctionCount] = {{-1, 1}, {-1, 1}, {0, 1}};

但是,如果为了方便我将 pair 子类化:

///< first - Min, second - Max
struct MinMax : public pair<double, double>
{
double& Min() { return first; }
double Min() const { return first; }
double& Max() { return second; }
double Max() const { return second; }
};

编译失败并出现错误:

error: could not convert ‘{-1, 1}’ from ‘<brace-enclosed initializer
list>’ to ‘const MinMax’
const MinMax mInMinMax[FunctionCount] = {{-1, 1}, {-1, 1}, {0, 1}};

是否可以子类化 pair<double, double>正确吗?

最佳答案

基类的构造函数不是自动“继承”的。您的 Min/Max 函数与此问题无关:

struct MinMax : public pair<double, double>
{
using pair<double, double>::pair;
...
};

关于c++ - (Re)named std::pair 成员中断初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009255/

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