c++ - Difference between allocating memory in struct and main? -
i have 2 simple structures this:
struct point{ double x, y; };
what difference between defining this
struct circle{ point *p; float radius; };
and this
struct circle{ point *p = new point; float radius; };
is there advantages if utilize first sample , in main
function
circle *c = new circle; c -> p = new point;
this:
struct circle{ point *p = new point; float radius; };
uses c++11 in-class initialization. means default, if no other constructor otherwise (there none in example), p
set new point
constructed circle
. equivalent less lines of code illustration explicitly set p
after creating circle
.
of course, illustration code you've provided, you'd improve off using value instead of pointer:
struct circle{ point p; float radius; };
then there point
within circle
, , won't have have long awkward conversation resource management, memory leaks, etc.
c++ pointers new-operator
No comments:
Post a Comment