Q:

Creating std::thread in Class with Header

How do I initialize DefenseThread so that it will start executing Defend()? I have seen a lot of examples on how to do it from a .cpp file without a header, but non with. 
void CommandDefend::DefendStart()
Gets the following error:
'&' requires I-value
Header:
#pragma once

#include <thread>

class CommandDefend : public ICommand
{
public:
CommandDefend();
~CommandDefend();

private:
thread* DefenseThread;

/// <summary>
/// Starts the commands execution.
/// </summary>
void DefendStart();

/// <summary>
/// Does the actual defending.
/// </summary>
void Defend();
};

CPP:
#include "stdafx.h"
#include "CommandDefend.h"

void CommandDefend::DefendStart()
{//ERROR HERE!!!!!!
    DefenseThread = new thread(&CommandDefend::Defend);

}

void CommandDefend::Defend()
{
}

A:

If you replace 
DefenseThread = new thread(&CommandDefend::Defend);

with 
DefenseThread = new thread(&CommandDefend::Defend, this);

it should work, because it's the way how I initialize class members of type std::thread (while they are not pointers).  

