on 9ad401b help sign in
68 lines 1.2 kB history raw
1#import <Foundation/Foundation.h>
3class Hello {
4 private:
5 id greeting_text;
7 public:
8 Hello() {
9 greeting_text = @"Hello, world!";
10 }
12 Hello(const char* initial_greeting_text) {
13 greeting_text = [[NSString alloc] initWithUTF8String:initial_greeting_text];
14 }
16 void say_hello() {
17 printf("%s\n", [greeting_text UTF8String]);
18 }
19};
21@interface Greeting : NSObject {
22 @private
23 Hello *hello;
26- (id)init;
27- (void)dealloc;
28- (void)sayGreeting;
29- (void)sayGreeting:(Hello*)greeting;
30@end
32@implementation Greeting
33- (id)init {
34 self = [super init];
35 if (self) {
36 hello = new Hello();
37 }
38 return self;
41- (void)dealloc {
42 delete hello;
43 [super dealloc];
46- (void)sayGreeting {
47 hello->say_hello();
50- (void)sayGreeting:(Hello*)greeting {
51 greeting->say_hello();
53@end
55int main() {
57 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
58 Greeting *greeting = [[Greeting alloc] init];
59 [greeting sayGreeting];
61 Hello *hello = new Hello("Bonjour, monde!");
62 [greeting sayGreeting:hello];
64 delete hello;
65 [greeting release];
66 [pool release];
67 return 0;