-3

例を見る

  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;
   }
4

1 に答える 1

0

インスタンスの変数名は、主に次の2つの理由で使用できません。

  1. 呼び出された関数の業務ではないため、アクセスできません。手続き型プログラミングの要点は、正式なパラメーター以外を介して呼び出し元のコンテキストにアクセスすることではありません。
  2. 変数名は、最終的なプログラムには影響しません。変数をit1、fooと呼ぶか、匿名で扱うかは関係ありません。

または、簡単にfn()言うと、constの場合は、一時的に呼び出すことができます。

MyClass().fn();

それではあなたの答えは何ですか?MyClassオブジェクトの配列はどうなりますか?変数名は、これらの関数がどのように機能するかではなく、呼び出す関数を決定します。

于 2012-04-26T12:17:14.443 に答える