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, but I want to understand why it is doing this and what it affects.
error C2512: 'CubeGeometry' : no appropriate default constructor available I have a class called ProxyPiece with a member variable of CubeGeometry.The constructor is supposed to take in a CubeGeometry and assign it to the member variable. Here is the header:
#pragma once #include "CubeGeometry.h" using namespace std; class ProxyPiece { public: ProxyPiece(CubeGeometry& c); virtual ~ProxyPiece(void); private: CubeGeometry cube; }; and the source:
#include "StdAfx.h" #include "ProxyPiece.h" ProxyPiece::ProxyPiece(CubeGeometry& c) { cube=c; } ProxyPiece::~ProxyPiece(void) { } the header for cube geometry looks like this. It doesn't make sense to me to use a default constructor. Do I need it anyways?:
#pragma once #include "Vector.h" #include "Segment.h" #include <vector> using namespace std; class CubeGeometry { public: CubeGeometry(Vector3 c, float l); virtual ~CubeGeometry(void); Segment* getSegments(){ return segments; } Vector3* getCorners(){ return corners; } float getLength(){ return length; } void draw(); Vector3 convertModelToTextureCoord (Vector3 modCoord) const; void setupCornersAndSegments(); private: //8 corners Vector3 corners[8]; //and some segments Segment segments[12]; Vector3 center; float length; float halfLength; };