gpt4 book ai didi

c++ - 从模板类继承

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

我正在为学校做一个项目,遇到了一些我想回答的问题。我最近问了一个问题here关于同一个项目并解决了该问题,但现在面临另一个我不具备解决知识的问题。所以我在这里再次询问我应该做什么。

我创建了一个包含固定长度字符串的模板类,其中模板参数是字符串的长度,现在我正尝试从模板类继承以创建一个只接受数字且长度固定的字符串。我的问题是我无法让类定义正常工作。当我不让新类成为这样的模板时:

class DigitStr: public FixedStr<N>

它说 N 是一个未声明的标识符。然而,当我把它做成这样的模板时:

template <int N>
class DigitStr: public FixedStr<N>

然后所有方法都无法正常工作并提供未声明的标识符或需要模板参数。我尝试编写构造函数的方法是:

DigitStr::DigitStr ()

DigitStr<N>::DigitStr ()

那么有人看到这里的问题了吗?任何帮助将不胜感激。

最佳答案

我不完全理解你的问题,但这可能会有所帮助:

template <int N>
class DigitStr: public FixedStr<N> {
DigitStr() {
// in-class constructor
}
~DigitStr();
};

template <int N>
DigitStr<N>::~DigitString() {
// out of class destructor
}

您需要使用this 来使用依赖于模板库的成员:

template <int N>
class DigitStr: public FixedStr<N> {
void foo() {
this->bar(); // call inherited member function
this->baz = 5; // set inherited member
}
};

关于c++ - 从模板类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8424056/

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