#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
, 但是为什么我能够在外界直接获取结构体内的属性呢? 该结构体对于外界而言不是不可见的吗?
xixi() を通じて構造体を公開したため、構造体オブジェクトのアドレスを直接取得し、構造体のプロパティを取得できますが、構造体に直接アクセスすることはできません。
リーリー例を追加します。 。 。 。この例は、私の考えを表現するために使用されています。ローカルの静的変数は外部で変更できます。
あなたの
xixi()
はpublic
に属しており、その戻り値はtes*
型であるため、tes
型が外部に公開されるとき