gpt4 book ai didi

c++ - 类模板的静态成员初始化

转载 作者:行者123 更新时间:2023-11-28 03:07:54 26 4
gpt4 key购买 nike

请在下面找到代码:

#include <iostream>
using namespace std;
template<typename T>
class A
{
static A* self;
};

template<typename T>
A* A<T>::self = NULL;
int main()
{
return 0;
}

我在初始化静态指针时遇到编译问题。即使有这么多链接以相同的方式表示(我初始化的方式),但问题仍然存在。下面是编译错误。

"expected constructor, destructor, or type conversion before '*' token"

最佳答案

A是一个类模板,所以在定义指向它的指针时需要指定模板参数。

代替:

template<typename T>
A* A<T>::self = NULL;

应该是:

template<typename T>
A<T>* A<T>::self = NULL;

在类体中,指定模板参数是可选的,所以你可以写A*在那里,它将被视为与 A<T> * 相同.

关于c++ - 类模板的静态成员初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19253580/

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