12.09.2020, 01:30, "Giuseppe D'Angelo via Qt-creator" <qt-creator@qt-project.org>: > Il 11/09/20 22:59, Murphy, Sean ha scritto: >> Is there any way in Qt Creator to only show me the places where >> Grandchild::foo() is called? Right now, I'm finding that even if I go to >> grandchild.cpp, put my cursor on void Grandchild::foo(), and then select >> "Find Reference to Symbol Under Cursor", it shows me every instance of EVERY >> foo() called anywhere in the program, including the declarations/definitions >> of Abstract::foo(), Base::foo() and Child::foo(), which I don't care about >> at the moment. > > By "every foo()" do you mean even the ones completely unrelated to your > class hierarchy, or all the foo() in the hierarchy? > > Anyhow, given it's a virtual, how can you know at compile time if you're > calling GrandChild::foo() or not? > > Abstract *blah = getFoo(); > blah->foo(); // might call Grandchild::foo(), or not
FWIW, there are at least 3 cases when it is certainly known at compile time which overload is called: 1) if object is referenced by value: Grandchild blah; blah.foo(); 2) fully qualified method call: Grandchild *blah = getFoo(); blah->Grandchild::foo(); // or Base::foo() etc. 3) when foo() is final in Grandchild: Grandchild *blah = getFoo(); blah->foo(); -- Regards, Konstantin _______________________________________________ Qt-creator mailing list Qt-creator@qt-project.org https://lists.qt-project.org/listinfo/qt-creator