问题描述
我正在尝试声明具有静态成员的类的朋友功能。我在Visual Studio 2017中编译了程序,并遇到了编译时错误:
未解析的外部符号“私有:静态结构体编号* user :: Link”(?Link @ user @@ 0PAUNumber @@ A)
这是我的代码:
#include<iostream>
using namespace std;
typedef struct Number
{
int number;
struct Number *Link;
}
num_t;
class user
{
private:
static num_t *Link;
static int Length;
public:
static void Create()
{
cout << "You called a function." << endl;
Link->number = 1;
}
friend void Show_menu();
};
void Show_menu()
{
user::Create();
}
int user::Length = 1;
num_t user::*Link = nullptr;
int main()
{
return 0;
}
通常,是否可以在C ++中用静态成员定义类的朋友功能?如果是这样,我该如何解决以上问题?
解决方法
我认为您想要num_t* user::Link = nullptr;
。
该错误与声明的朋友无关。