title: missing type specifier - int assumed. Note: C++ does not support default-int on function in .h file
body: <p>I am following tutorials outlined in "SFML Game Development" by Packt Publishing.  In chapter 4, I am having many errors, most notably " missing type specifier - int assumed. Note: C++ does not support default-int".  Here is my header and source file that this is referring to:</p>
  
  <pre><code>#pragma once
  
  #include &lt;assert.h&gt;
  #include &lt;algorithm&gt;
  #include &lt;vector&gt;
  #include &lt;SFML\Graphics.hpp&gt;
  #include "Category.h"
  #include "Command.h"
  
  class SceneNode : public sf::Transformable, public sf::Drawable, private sf::NonCopyable
  {
  public:
      typedef std::unique_ptr&lt;SceneNode&gt; Ptr;
  
  public:
      SceneNode();
      void attachChild(Ptr);
      Ptr detachChild(const SceneNode&amp;);
      void update(sf::Time);
      sf::Transform getWorldTransform() const;
      sf::Vector2f getWorldPosition() const;
      unsigned int getCategory() const;
      void onCommand(const Command&amp;, sf::Time);
  
  private:
      virtual void draw(sf::RenderTarget&amp;, sf::RenderStates) const;
      virtual void drawCurrent(sf::RenderTarget&amp;, sf::RenderStates) const;
      virtual void updateCurrent(sf::Time);
      void updateChildren(sf::Time);
  
  private:
      std::vector&lt;Ptr&gt; mChildren;
      SceneNode* mParent;
  };
  
  #include "SceneNode.h"
  
  
  SceneNode::SceneNode() : mChildren(), mParent(nullptr)
  {
  
  }
  
  void SceneNode::attachChild(Ptr child)
  {
      child-&gt;mParent = this;
      mChildren.push_back(std::move(child));
  }
  SceneNode::Ptr SceneNode::detachChild(const SceneNode&amp; node)
  {
      auto found = std::find_if(mChildren.begin(), mChildren.end(), [&amp;] (Ptr&amp; p) -&gt; bool
      {
          return p.get() == &amp;node;
      });
      assert(found != mChildren.end());
  
      Ptr result = std::move(*found);
      result-&gt;mParent = nullptr;
      mChildren.erase(found);
      return result;
  }
  
  void SceneNode::draw(sf::RenderTarget&amp; target, sf::RenderStates states) const
  {
      states.transform *= getTransform();
      drawCurrent(target, states);
      for(auto itr = mChildren.begin(); itr != mChildren.end(); ++itr)
      {
          (*itr)-&gt;draw(target, states);
      }
  }
  
  void SceneNode::drawCurrent(sf::RenderTarget&amp; target, sf::RenderStates states) const
  {
  }
  
  void SceneNode::updateCurrent(sf::Time dt)
  {
  
  }
  void SceneNode::update(sf::Time dt)
  {
      updateCurrent(dt);
      updateChildren(dt);
  }
  void SceneNode::updateChildren(sf::Time dt)
  {
      for(auto itr = mChildren.begin(); itr != mChildren.end(); ++itr)
      {
          (*itr)-&gt;update(dt);
      }
  }
  
  sf::Transform SceneNode::getWorldTransform() const
  {
      sf::Transform transform = sf::Transform::Identity;
      for(const SceneNode* node = this; node != nullptr; node = node-&gt;mParent)
      {
          transform = node-&gt;getTransform() * transform;
      }
      return transform;
  }
  sf::Vector2f SceneNode::getWorldPosition() const
  {
      return getWorldTransform() * sf::Vector2f();
  }
  
  unsigned int SceneNode::getCategory() const
  {
      return Category::Scene;
  }
  
  void SceneNode::onCommand(const Command&amp; command, sf::Time dt)
  {
      if(command.category &amp; getCategory())
      {
          command.action(*this, dt);
          for(auto itr = mChildren.begin(); itr != mChildren.end(); ++itr)
          {
              (*itr)-&gt;onCommand(command, dt);
          }
      }
  }
  </code></pre>
  
  <p>The error is specifically on line 23:</p>
  
  <pre><code>void onCommand(const Command&amp;, sf::Time);
  </code></pre>
  
  <p>Any ideas?</p>