在CPP类中声明一个C函数作为朋友

raj*_*dit 4 c c++

我需要在C函数中使用类的私有变量.我正在做这样的事情

class Helper
{
private:
    std::string name;
public:
    std::getName(){return name;}
friend extern "C" void initializeHelper();
};
Run Code Online (Sandbox Code Playgroud)

但是这段代码会产生错误 unqualified-id before string constant extern "C" {

我无法确定我在这里做错了什么.

Pio*_*ycz 8

只需在课前向前声明此函数:

extern "C" void foo();
Run Code Online (Sandbox Code Playgroud)

然后你可以在friend-declaration中使用它:

class A {
public:
  A() {}
private:
  friend void foo();
  int a;
};
Run Code Online (Sandbox Code Playgroud)