stream. functions. You can not use them. No one in the world can do that.
The Arduino reference talks about the Stream class. They assume that you know the C++ language and know what a class is. I agree that a little more explanation could be helpful.
A class definition is just a definition of how a class looks like. It is a description of a ‘type’, not the ‘variable’ itself.
The ‘object’ is a complex ‘variable’, and the compiler makes code for the object.
There is a Wire object, which uses a few classes, such as ‘TwoWire’ and ‘Stream’.
For example the Serial object uses the classes ‘Stream’ and ‘Print’ for Serial/UART communication.
The C++ language can make a derived class from another class. The object can use the functions of both. The object is “Wire” and you can use “Wire.read()” and “Wire.readBytes()”.
The Stream class is the base class. Because those are common functions, I look at it as if the Stream class is on top of the TwoWire class, since the TwoWire class has the actual interface with the hardware.
int i; // reserve a memory location for 'i'
i = 3; // write 3 to that memory location
int = 3; // compiler does not know what to do.
The class is just a definition of a type, just as ‘int’ or ‘long’ or ‘float’.
The object has a memory location.