Skip to content

Commit 47b6a76

Browse files
committed
Update
1 parent ec04360 commit 47b6a76

File tree

1 file changed

+27
-20
lines changed

1 file changed

+27
-20
lines changed

sources/modules/object-model/constructors.md

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ _Specifies the different levels of teaching._
1111
------------------------------------------------------------------------
1212
Level Objective
1313
----------------- ------------------------------------------------------
14-
Foundational: Declaration of constructors
14+
Foundational: Basic usage of constructors
1515

1616
Main: Initialization and overloading
1717

@@ -36,7 +36,7 @@ _Very brief introduction to the topic._
3636

3737
A student:
3838

39-
1. should know the notion of classes and structs
39+
1. should know the notion of classes and structs %todo link to classes
4040

4141
#### Student outcomes
4242

@@ -54,49 +54,56 @@ A student should be able to:
5454
#### Points to cover
5555

5656
* Overloading of constructors and default arguments
57-
* Copy constrcutor and destructor
57+
* Copy constructor and destructor
5858
* Constructors can be used to initialize class members
59-
*
6059

6160
#### Caveats
6261

6362
_This section mentions subtle points to understand, like anything resulting in
6463
implementation-defined, unspecified, or undefined behavior._
6564

66-
* programming user interfaces in C++ and in general require plenty of boiler plate code
67-
* API calls are specific to one library and might not be transferable to other libraries
68-
* Some libraries are written in C
65+
* None
6966

70-
### Main: Command of supporting mechanisms and tools
67+
### Main:
7168

7269
#### Background/Required Knowledge
7370

7471
* All of the above.
72+
* Class inheritance %todo check for link
73+
* Dynamic memory
74+
* Difference between shared and unique pointers
7575

7676
#### Student outcomes
7777

7878
A student should be able to:
7979

80-
1. add more advanced elements, like tables or images
81-
2. handle multiple windows
82-
3. show error and warning popups
83-
4. use different forms of IO, like keyboard, mouse, or touch pad
84-
5. explain basic of fonts and accessibility
80+
1. Explain the differences between the big five, namely, copy constructor, move constrcutor, copy/assign, move/assign, destructor, and constructor.
81+
2. Construct a initializer list and explain conditions when it is necessary
82+
3. Delegate to the constructor of the base class
83+
4. Demonstrate and explain safe memory handling using shared or unique pointers
84+
5. Define what RAII is and the role of the constructor
8585

8686
#### Caveats
8787

88-
* programming user interfaces is rather complex and might not applicable for most students
88+
* Order of construction should match the initalizer list order
8989

9090
#### Points to cover
9191

92-
* More advanced API calls and design patterns
92+
* Not calling virtual functions from the base class
93+
* Do not initialze data outside of the constructor (two face initialization)
94+
* Difference between assignment and deep copy
9395

94-
### Advanced: Technicalities and tools
96+
### Advanced:
9597

9698
_These are important topics that are not expected to be covered but provide
9799
guidance where one can continue to investigate this topic in more depth._
98100

99-
* Internationalization
100-
* Font designers
101-
* Hardware acceleration
102-
* Custom widget generation
101+
* Error handling within constructors
102+
* Non-static data initialziers
103+
* Constructors with member references
104+
* Purposes for protected constructors
105+
* What does delete vs private means
106+
* What does it mean to have an explicit constructor
107+
* Impact on const expr on constructor %extend later
108+
* Rules on memory ordering %extend later
109+
* Define constructor outside of the body of the class %extend later

0 commit comments

Comments
 (0)