gpt4 book ai didi

C++ 模板 - 类内结构

转载 作者:行者123 更新时间:2023-11-30 01:45:43 24 4
gpt4 key购买 nike

对于下面的代码,我在实现行遇到编译错误:“B 没有定义类型”。我知道将函数定义放在类声明中的解决方案。但是,是否有可能在模板类声明之外定义函数?谢谢

template<typename T>
class A {
public:
// ctor, dtor and interface funcs etc

private:
struct B {
T value;
B *next;
}

B *locate(const T& val) const;

// blah blah
};

template<typename T>
B *A<T>::locate(const T& val) const
{
//logic
}

最佳答案

BA 中定义你应该用 A<T>:: 来限定它:

template<typename T>
typename A<T>::B *A<T>::locate(const T& val) const
{
//logic
}

另请注意 typename这是必需的,因为 B是从属名称。

关于C++ 模板 - 类内结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34187696/

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