cxx-scope-1.mm

来自「linux下编程用 编译软件」· MM 代码 · 共 54 行

MM
54
字号
/* Handle C++ scoping ('::') operators in ObjC message receivers gracefully.  *//* Author: Ziemowit Laski  <zlaski@apple.com> *//* { dg-do run } */#include <objc/Object.h>#include <stdlib.h>@class Derived;Derived *inst[3];struct CxxClass {  static Derived *get_instance(int);};Derived *CxxClass::get_instance(int offs) {  return inst[offs];}@interface Derived: Object {  int value;}-(id)initWithValue:(int)val;-(int)derived_meth;@end@implementation Derived-(id)initWithValue:(int)val {  [super init];  value = val;  return self;}- (int)derived_meth {  return value;}@endint main(void) {  int r;  inst[1] = [[::Derived alloc] initWithValue:7];  inst[2] = [[Derived alloc] initWithValue:77];  r = [CxxClass::get_instance(2) derived_meth];  if (r != 77)    abort();  r = [CxxClass::get_instance(1) derived_meth];  if (r != 7)    abort();  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?