6.10 友元

SWIG识别友元声明。例如,如果有这样的代码:

  1. class Foo {
  2. public:
  3. ...
  4. friend void blah(Foo *f);
  5. ...
  6. };

则对友元声明生成的代码与下面声明的生成代码的方式一样:

  1. class Foo {
  2. public:
  3. ...
  4. };
  5. void blah(Foo *f);

在C++中,友元声明的作用域与其声明的类的作用域相同,因此:

  1. %ignore bar::blah(Foo *f);
  2. namespace bar {
  3. class Foo {
  4. public:
  5. ...
  6. friend void blah(Foo *f);
  7. ...
  8. };
  9. }

将忽略对blah的包装。