No, after creating the object, it is being built.
Skip your code and see what it does (in the absence of optimizations, note that many modern compilers will do copy-elision even in debugging or -O0 modes):
demo(0);
demo(0) demo(int s). rvalue. , :
size = 0
k = uninitialized
demo a = demo(0);
demo a .
demo a :
size = 0
k = uninitialized
a = 4.7;
a , . . , 4.7 demo. - demo(double p).
, demo :
size = uninitialized
k = uninitialized + 4.7 = undefined
a, a undefined.
songyuanyao - .
seters - .
, , .
demo(int s)
{
size = s;
k = 0.0;
}
.
void setK (double p)
{
k = size + p;
}
:
int main ()
{
demo a (0) ;
a.setK (4.7) ;
a.show () ;
return 0 ;
}