Como comparar C ++ string usando qsort em c?

Eu tentei aprender a função qsort da biblioteca cstdlib. Isso é fornecido mesmo emc++. Mas eu não entendo como usá-los para classificarc++ cordas. Eu não tenho certeza do que os parâmetros devem ser para osizeof() operador e se o meucompare_str código está certo. Eu tentei este código:

    #include<iostream>
    #include<cstdlib>
    using namespace std;
    #include<string>

    int compare_str( const void *a, const void *b){
       string  obj = (const char*)a;
       string obj1 = (const char*)b;
       return obj.compare(obj1);
    }
    int main(){
        string obj[4] = {"fine", "ppoq", "tri", "get"};
        qsort(obj, 4, sizeof(obj[0].length()), compare_str);
        for( int i=0; i<4; i++)
            cout<<obj[i]<<endl;
        return 0;
    }

Minha saída foi:

ppoq
tri
get
fine

Eu não sou capaz de fazer o erro. Por favor ajude.

questionAnswers(6)

yourAnswerToTheQuestion