I'm coming from a Python background(look at indentation :) ) and trying to learn basics of C++. I wrote a simple prime generator, I know there is better algorithms, but I want advices about coding style, inconsistencies, or better language use.

Here is my main.cpp:

```
#include <iostream> 
#include "PrimeGenerator.h"

using namespace std;

int main(){
    PrimeGenerator *generator;
    generator = new PrimeGenerator();

    for(int i=0;; i++){
        generator->addPrime();
        cout<<generator->getPrimes()->back()<<endl;
        }

    delete generator; #I know this is unnecessary at the end of program, but I think it is a better practice.

    return 0;
    }

```

And PrimeGenerator.h:

```
#pragma once
#include <list>
#include <iostream>

typedef std::list<unsigned long long int> PrimeList;

class PrimeGenerator{

    PrimeList *primes;

    public:

    PrimeGenerator();
    ~PrimeGenerator();

    PrimeList *getPrimes();
    void addPrime();
    };

PrimeGenerator::PrimeGenerator(){
    primes = new PrimeList;

    primes->push_back(2);
    primes->push_back(3);
    }

PrimeGenerator::~PrimeGenerator(){
    delete primes;
    }

void PrimeGenerator::addPrime(){

    unsigned long long int num = primes->back()+2;

    while(true){
        bool isPrime = true;

        for(auto it=primes->begin(); it!=primes->end(); ++it){

            if(*it > (num / 2)) 
                break;

            if((num % *it) == 0){
                isPrime = false;
                break;
                }
            }

        if(isPrime){
            primes->push_back(num);
            break;
            }

        num += 2;
        }
    }

PrimeList *PrimeGenerator::getPrimes(){
    return primes;
    }

```