diff options
| author | Cliff Click <cliffc@acm.org> | 2026-10-02 13:04:34 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-10-02 13:04:34 -0700 |
| commit | e4dc3273f201ae741637b626998637cce973546b (patch) | |
| tree | 7607c1da4378da42549e8142371d95bdca4e06e0 /chapter16 | |
| parent | 6cd01a8d646750748a0af221073de8a7787472ad (diff) | |
| download | Simple-e4dc3273f201ae741637b626998637cce973546b.tar.gz Simple-e4dc3273f201ae741637b626998637cce973546b.zip | |
First pass README updates
Diffstat (limited to 'chapter16')
| -rw-r--r-- | chapter16/README.md | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/chapter16/README.md b/chapter16/README.md index 1c598568..663f175a 100644 --- a/chapter16/README.md +++ b/chapter16/README.md @@ -1,5 +1,8 @@ # Chapter 16: Constructors and Final fields +[Previous: Chapter 15](../chapter15/README.md) | +[Next: Chapter 17](../chapter17/README.md) + # Table of Contents 1. [Constructors](#constructors) @@ -24,12 +27,12 @@ Fields are initialized in three ways: syntax is required. ``` int x; // x is initialized to 0 -struct Ref { Ref ptr?; }; // Instances of Ref will have ptr initialized to null +struct Ref { Ref? ptr; }; // Instances of Ref will have ptr initialized to null return new Ref.ptr; // Returns a null ``` 2. The type declaration can specify an initial value. Later allocations will - start with this value. + start with this value. ``` int x = 5; // x is initialized to 5 struct Point { int x=1; int y=1; }; // Point x and y will start as 1, not 0 @@ -37,7 +40,7 @@ return new Point.x; // Returns a 1 ``` 3. The allocation can specify an initial value. - + ``` struct Point { int x=1; int y=1; }; // Point x and y will start as 1, not 0 return new Point { x=3; }.x; // Returns a 3 @@ -63,12 +66,12 @@ declaration or the allocation. Any amount of code is legal, including ``` struct Square { flt side = arg; - flt diag = arg*arg/2; - // Newtons approximation to the square root, computed in a constructor. + flt diag = arg*arg/2; + // Newton's approximation to the square root, computed in a constructor. // The actual allocation will copy in this result as the initial // value for 'diag'. while( 1 ) { - // The next-guess variable "next" is not a field in Square, + // The next-guess variable "next" is not a field in Square, // because it does not appear at the top level flt next = (side/diag + diag)/2; if( next == diag ) break; |
