Parametric polymorphism: Difference between revisions
Content added Content deleted
m (→{{header|C3}}) |
m (→{{header|C3}}) |
||
Line 226: | Line 226: | ||
struct Tree |
struct Tree |
||
{ |
{ |
||
Type value; |
Type value; |
||
Tree* left; |
Tree* left; |
||
Tree* right; |
Tree* right; |
||
} |
} |
||
fn void Tree.replaceAll(Tree* a_tree, Type new_value) |
fn void Tree.replaceAll(Tree* a_tree, Type new_value) |
||
{ |
{ |
||
a_tree.value = new_value; |
a_tree.value = new_value; |
||
if (a_tree.left) a_tree.left.replaceAll(new_value); |
if (a_tree.left) a_tree.left.replaceAll(new_value); |
||
if (a_tree.right) a_tree.right.replaceAll(new_value); |
if (a_tree.right) a_tree.right.replaceAll(new_value); |
||
} |
} |
||
</lang> |
</lang> |
||
Line 243: | Line 243: | ||
<lang c3>define IntTree = tree<int>::Tree; |
<lang c3>define IntTree = tree<int>::Tree; |
||
fn void test() |
|||
{ |
{ |
||
IntTree inttree; |
IntTree inttree; |