From what I’m able to understand:
- declaration is when prototype or declaration is used to describe the features
- definition is when a declaration is also assigned a literal or an object, such that a chunk of memory is allocated
- initialization is the assignment of an object, either during definition or immediately after declaration
- assignment is the setting of a value of a particular object at any stage of the program execution
Which of the follow terms overlap? Which of them is a superset/subset of each other?
Initialization is a subset of assignment. Its initialization the first time you do an assignment.
I dont think declaration and definition overlap, but they are similar concepts. I think i would have swapped your descriptions though. Normally you have a function definition, which describes the function and its features, and you have variable declarations, which is literal objects/bits of memory.
Please dont take this response as gospel, i am not super happy with it :/