title: C2259: 'Object' cannot instantiate Error, I'm not instantiating any 'Object' objects?
body: <p>I'm quite sure I'm not creating a pure 'Object' variable. I am declaring a vector consisting of Objects though, but I believe that should be legal even though 'Object' it is a abstract class/struct?</p>
  <p>Header file:</p>
  <pre><code>#pragma once
  
  #include &lt;glm/glm.hpp&gt;
  #include &quot;Collider.h&quot;
  
  #include &quot;Renderer.h&quot;
  
  struct Object
  {
  public:
      float mass = 10;
      float Resititution = 0.7;
      glm::vec2 velocity;
      glm::vec2 force = glm::vec2(0, 0);
      bool isDynamic = true;
      bool isKinematic = true;
      
      Collider* collider;
      Transform* transform;
  
      virtual void submitToRenderer(Renderer* renderer) const = 0;
  };
  
  struct SphereObj : Object
  {
      void submitToRenderer(Renderer* renderer) const override;
  };
  
  struct PlaneObj : Object
  {
      void submitToRenderer(Renderer* renderer) const override;
  };
  </code></pre>
  <p>cpp file:</p>
  <pre><code>#include &quot;Object.h&quot;
  
  void SphereObj::submitToRenderer(Renderer* renderer) const
  {
      renderer-&gt;submitObject(this);
  }
  
  
  void PlaneObj::submitToRenderer(Renderer* renderer) const
  {
      renderer-&gt;submitObject(this);
  }
  </code></pre>
  <p>in main()</p>
  <pre><code>std::vector&lt;Object&gt; objList; 
  </code></pre>
  <p>in another file:</p>
  <pre><code>std::vector&lt;Object*&gt; m_objects;
  </code></pre>