Поскольку 'this' является ключевым словом c ++, оно имеет функциональность, определенную стандартом, поэтому ответ будет отрицательным, вы не можете использовать слово 'this' для обозначения чего-то другого, кроме того, что 'this' означает в контекст, в котором он используется.
В контексте, в котором вы его используете, это не может означать ничего, кроме того, что оно означает.
https://en.cppreference.com/w/cpp/language/this
В контексте расширения класса возможно что-то вроде этого:
class animal {
public:
std::string sound{ "" };
std::function<void()> callback;
void make_sound() { callback(); }
};
// a dog, which "is an animal"
class dog : public animal {
public:
// construct, and "extend" animal by setting the callback
dog() {
// in this context, 'this' is appropriate
callback = [&]() { this->sound = "bark"; };
}
};
// a cat, which "is an animal"
class cat : public animal {
public:
// construct, and "extend" animal by setting the callback function
cat(){
// in this context, 'this' is appropriate
callback = [&]() { this->sound = "meow"; };
}
};
void make_animal_sounds() {
cat a_cat;
dog a_dog;
a_cat.make_sound();
a_dog.make_sound();
// in this context, an instance must be specified
a_cat.callback = [&]() {a_cat.sound = "quack"; };
// now a_cat will sound like a duck
a_cat.make_sound();
}
Конечно, есть более традиционные способы расширения класса, но, возможно, это то, что вы пытались сделать.