Объявить функцию C как друга внутри класса CPP

Мне нужно использовать закрытую переменную класса внутри функции C. Я делал что-то вроде этого

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

но этот сегмент кода дает ошибку unqualified-id before string constant extern "C" {

Я не могу определить, что я делаю здесь неправильно.

1 ответ

Решение

Просто объявите эту функцию перед вашим классом:

extern "C" void foo();

Затем вы можете использовать его в объявлении друга:

class A {
public:
  A() {}
private:
  friend void foo();
  int a;
};
Другие вопросы по тегам