Global variables with C++ in multiple files
When using multiple source files you need to use header files to share things between them.

myproject.h:

#ifndef __myproject_h__
#define __myproject_h__
extern int aGlobalVariable;
#endif


myNewCode.c

#include "myproject.h"
int aGlobalVariable;


modifiedOldCode.cpp

#include "myproject.h"


This way the header file defines the variable as an extern in all of your c / cpp files so that it is visible to all of them but the variable is only actually declared and memory allocated for it in one place, in the .c file.
Similarly any functions that you want to be visible in both files should be declared in the headerfile (e.g. void myfunction(int x);) but the actual definitions should be somewhere in the .c or .cpp files.
The #ifndef and #define lines in the header as there so that if the header somehow gets included twice you don't get lots of redefinition errors.

There is nothing strange about c++ and globals, a global defined this way is global to everything, it doesn't matter what object you're in or how things are scoped. This can however have some strange effects since there is only ever one copy of a global while you can possibly have multiple instances of the c++ class that uses it. This can cause some consistency related issues if you aren't careful. Whether you need to worry about this or not depends very much on the nature of the code.