Criados os .h .cpp da classe SmartPhone

Apenas com construtor vázio e o destructor
Atributes e inicilizações

Foram criados os atributos:

private:

	const int IDPHONE;
	
	static int numPhones;
	
	const static int RELEASEDATE = 0;
	
Foram inicializados:

no .H
	const static int RELEASEDATE = 0;

No .CPP

int SmartPhone::numPhones = 0;

SmartPhone::SmartPhone()
:IDPHONE(12345)
{
	numPhones++;
}



Atualização do main

#include <iostream>
using std::cout;

#include "SmartPhone.h"

int main(int argc, char **argv)
Inicializando RELEASEDATE no cpp

int SmartPhone::numPhones = 0;


const int SmartPhone::RELEASEDATE = 12092014;

SmartPhone::SmartPhone()
:IDPHONE(12345)
{
	numPhones++;
}
Implementação de mostrarInfo (membro static)

	//A static member function cannot be declared with the keywords
	//virtual, const, volatile, or const volatile.
	static void mostrarInfo( );
	
	
	//Só pode ter membro static
	void SmartPhone::mostrarInfo( )
	{
		cout << "A data de lancamento deste modelo eh:" << '\n'
		 	<< RELEASEDATE << "\no numero de smartphones vendidos eh:" << '\n'
		 	<< numPhones;
		 
	}
	
Usando no main
	
	SmartPhone::mostrarInfo();
Criando history

Para guardar o histórico de páginas visitadas no SmartPhone.
Atributo history 

#include <vector>
using std::vector;

#include <string>
using std::string;

...


vector<string> history;
Inicializando o atributo history


SmartPhone::SmartPhone()
:IDPHONE(12345)
{
	cout << "Quantidade de paginas visisitadas " << history.size() << '\n';
	numPhones++;
}
Funções membro updateHistory e listHistory

.h

	void updateHistory(const string &);
	
	void listHistory() const;
	
.cpp

	void SmartPhone::updateHistory(const string &newPage)
	{
		history.push_back(newPage);
	}


	void SmartPhone::listHistory( ) const
	{
		cout << "As paginas visitas foram\n";
		for(unsigned int i = 0; i < history.size(); i++)
			cout << history[i] << '\n';
	}
	
main

	sp1.updateHistory("Facebook");
	sp1.updateHistory("Google");
	sp1.updateHistory("ufpa.br");
	
	sp1.listHistory();