how to use PETSC with C++