Variables of struct and class types are called objects - discuss
Mike Parker
aldacron at gmail.com
Sun Aug 3 11:29:46 UTC 2025
On Sunday, 3 August 2025 at 11:11:43 UTC, Brother Bill wrote:
> In Programming in D book, page 247, it is written: Variables
> of struct and class types are called objects.
>
> This struck me as odd and confusing. I have always been taught
> that objects are instances of classes. That is, new MyClass
> creates an instance or object of MyClass.
>
> There was a wall between value types and reference types.
> Of course structs and class types are both user defined types,
> but one with value semantics and the other with reference
> semantics.
>
> Given that most languages support both user defined value types
> and user defined reference types, that D use the same term for
> both instances.
>
> Am curious whether experienced D developers actually refer to
> both struct and class variables as "objects" without confusion.
>
> Is this something that most D newbies struggle over?
>
> Please assist with my "deprogramming" from "objects" being only
> for reference types.
>
Classes and structs in C++ are both value types, and instances of
both are referred to as objects. This isn't unusual.
An object is a concrete instance of a type described by a class
or struct definition. It's the thing you're manipulating, not the
definition. Whether you're manipulating it directly or through a
reference makes no difference. Whether it's on the stack or the
heap makes no difference.
Consider that a pointer to a struct a reference to the struct
instance in the same way a class variable is a reference to a
class instance.
More information about the Digitalmars-d-learn
mailing list