blob: 98ba1462c1c8d7be36101e6b2b0df3dd31fea746 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
// a struct method can return an owned object: its header declares the .u return
struct Node { int v; }
struct Maker {
static Node*.u make(int n) { Node* p = new(Node); p.v = n; return u*p; }
}
Node*.u mk(int n) { Node* p = new(Node); p.v = n; return u*p; }
int main() {
Node*.u a = Maker.make(7);
put_n(a.v); put_c(32);
free(d*a);
Node*.u b = mk(9);
put_n(b.v); put_c(10);
free(d*b);
return 0;
}
|