gpt4 book ai didi

c++ - "A"之前的预期构造函数、析构函数或类型转换

转载 作者:太空宇宙 更新时间:2023-11-04 15:46:01 24 4
gpt4 key购买 nike

template <typename T>
class A {
class B {
typedef int INT;
INT func(double e) {
return INT(e * 3.6);
}
};
};

我的问题是从类声明中删除 func 函数的定义。这是我程序的简化案例。编译器提示 typedef。

这是我的尝试:

template <typename T>
A<T>::B::INT A<T>::B::func(double e) {
return INT(e * 3.6);
}

编译器错误是 main.cpp:14: error: expected constructor, destructor, or type conversion before "A".

最佳答案

g++ 4.7直接指出了问题:

$ g++ 3.cpp
3.cpp:12:1: error: need 'typename' before 'A<T>::B::INT' because 'A<T>::B' is a dependent scope

所以:

    template <typename T>
typename A<T>::B::INT A<T>::B::func(double e) {
// ^^^^^^^^
return INT(e * 3.6);
}

关于c++ - "A"之前的预期构造函数、析构函数或类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16457107/

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