30 lines
582 B
OpenEdge ABL
30 lines
582 B
OpenEdge ABL
%module(directors="1") director_pass_by_value
|
|
%director DirectorPassByValueAbstractBase;
|
|
|
|
%inline %{
|
|
class PassedByValue {
|
|
int val;
|
|
public:
|
|
PassedByValue() { val = 0x12345678; }
|
|
int getVal() { return val; }
|
|
};
|
|
|
|
int doSomething(int x) {
|
|
int yy[256];
|
|
yy[0] =0x9876;
|
|
return yy[0];
|
|
}
|
|
|
|
class DirectorPassByValueAbstractBase {
|
|
public:
|
|
virtual void virtualMethod(PassedByValue pbv) = 0;
|
|
virtual ~DirectorPassByValueAbstractBase () {}
|
|
};
|
|
|
|
class Caller {
|
|
public:
|
|
void call_virtualMethod(DirectorPassByValueAbstractBase &f) {
|
|
f.virtualMethod(PassedByValue());
|
|
}
|
|
};
|
|
%}
|