如何在类成员函数中打印调用者对象名称

How shall I print caller object name inside a class member function?

本文关键字:调用者 打印 对象 函数 成员      更新时间:2023-10-16

参见示例

  class MyClass {
    public:
    void fn() {
            // Here  I want to print caller object name,( here it is  ***it1***)
        }
    };

    int main() {
        MyClass it1;
        it1.fn();
        return 0;
   }

实例的变量名称不可用主要有两个原因:

  1. 它不是被调用函数的业务,因此无法访问它。过程编程的重点不是通过形式参数以外的任何东西访问调用上下文。
  2. 变量名称对最终程序没有影响。无论你把你的变量叫做it1,foo,甚至匿名对待它,都不应该也无关紧要。

或者,简而言之:如果fn()是常量,你可以用一个临时的来称呼它:

MyClass().fn();

那你的答案是什么?对于 MyClass 对象数组来说呢?变量名称确定要调用的函数,而不是这些函数的工作方式。