検索

ホームページ  >  に質問  >  本文

c++ 类内私有的结构体对于外界而言是公开的?

#include <iostream>
class test{
    private:
        struct tes{
            int te;
        };

        tes t;
    public:
        test(){
            t.te = 5;
        }
        tes* xixi(){
            return &t;
        }
};

int main(void){
    test test1;
    std::cout << test1.xixi()->te;
    return 0;
}

代码如上, 类test中有一个私有的结构体tes, 但是为什么我能够在外界直接获取结构体内的属性呢? 该结构体对于外界而言不是不可见的吗?

天蓬老师天蓬老师2804日前578

全員に返信(2)返信します

  • PHP中文网

    PHP中文网2017-04-17 14:31:50

    xixi() を通じて構造体を公開したため、構造体オブジェクトのアドレスを直接取得し、構造体のプロパティを取得できますが、構造体に直接アクセスすることはできません。
    例を追加します。 。 。 。この例は、私の考えを表現するために使用されています。ローカルの静的変数は外部で変更できます。

    リーリー

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 14:31:50

    あなたの xixi()public に属しており、その戻り値は tes* 型であるため、tes 型が外部に公開されるとき

    返事
    0
  • キャンセル返事