是否可以在C ++中用静态成员定义类的好友函数?

问题描述

我正在尝试声明具有静态成员的类的朋友功能。我在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;。 该错误与声明的朋友无关。