I\'ve looked at a few other questions about this, but I don\'t see why a default constructor should even be called in my case. I could just provide a default constructor, bu
Your default constructor is implicitly called here:
ProxyPiece::ProxyPiece(CubeGeometry& c)
{
cube=c;
}
You want
ProxyPiece::ProxyPiece(CubeGeometry& c)
:cube(c)
{
}
Otherwise your ctor is equivalent to
ProxyPiece::ProxyPiece(CubeGeometry& c)
:cube() //default ctor called here!
{
cube.operator=(c); //a function call on an already initialized object
}
The thing after the colon is called a member initialization list.
Incidentally, I would take the argument as const CubeGeometry& c instead of CubeGeomety& c if I were you.