Arduino OOP and [this] keyword
A sketch isn't an object. It is merely a collection of variables, functions and, of course, classes.

Your example seems to be trying to make things incredibly complex when they don't need to be.

There are a number of ways of referencing things in one file from another - whether or not they are in a class.  The simplest is to use the extern keyword.  This is used in a file where you want to reference a variable or function that is defined in the global scope of another file. It says "This variable is global, but it's defined somewhere else."

// Sketch
String myString = "foo";

// Library
extern String myString;
// ... later on ...
myString = "bar";


Of course, that means that the name of the variable is fixed and cannot change.  So you can pass the variable to whatever it is you want to use that variable in.  That could be as simple as passing it to your "changer" function:

// Sketch
String myString = "foo";
StringChanger change;
// ... later ...
change.changeString(myString);

// Library
class StringChanger {
    public:
        void changeString(String &amp;stringToChange) {
            stringToChange = "bar";
        }
};


If you want to "tie" the variable to the class so you don't have to pass it each time you could pass it to the constructor and have the class remember it:

// Sketch
String myString = "foo";
StringChanger change(myString);
// ... later ...
change.changeString();

// Library
class StringChanger {
    private:
        String *_string;
    public:
        StringChanger(String &amp;string) {
            _string = &amp;string;
        }
        void changeString() {
            *_string = "bar";
        }
}


And there's a myriad of other ways of doing it.