gpt4 book ai didi

c++ - 错误 : need ‘typename’ before ‘A::obj’ because ‘A’ is a dependent scope

转载 作者:行者123 更新时间:2023-11-30 04:20:49 29 4
gpt4 key购买 nike

假设我有一个名为 A 的类

template<class T>
class A
{
protected:
static T* obj;

A() {}
~A() {}

public:
// methods...
};


// Somewhere in my source file...
template <class T> A <T*> ::obj = NULL;

出于各种原因,我需要声明一个静态成员 obj,而 gcc 不喜欢它们在类定义期间被初始化(显然您可以使用 visual studio 做到这一点)

无论如何,我该如何正确声明 obj?

最佳答案

你不能像那样部分特化对象。相反,只需这样做:

template <class T> T * A<T>::obj = NULL;

确保它与类模板定义一起进入头文件!

关于c++ - 错误 : need ‘typename’ before ‘A<T*>::obj’ because ‘A<T*>’ is a dependent scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14992454/

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