#include <iostream>
#include <vector>
using namespace std;
//指针间接引用运算符一定是一个成员函数。它有着额外的,非典型的限制:它必须返回一个对象(或引用),该对象也有一个指针间接引用运算符
class Ob {
public:
void h() { cout << "4556" << endl; }
};
class Obj {
Ob k;
public:
Ob* operator->() {
return &k;
}
};
class ObjContainer {
Obj a;
public:
Obj operator->() const {
return a;
}
};
void main() {
ObjContainer sp;
sp->h();
} ///:~
#include <iostream>
#include <vector>
using namespace std;
//指针间接引用运算符一定是一个成员函数。它有着额外的,非典型的限制:它必须返回一个对象(或引用),该对象也有一个指针间接引用运算符
class Ob {
public:
void h() { cout << "4556" << endl; }
};
class Obj {
Ob k;
public:
Ob* operator->() {
return &k;
}
};
class ObjContainer {
Obj a;
public:
Obj& operator->() {
return a;
}
};
void main() {
ObjContainer sp;
sp->h();
} ///:~///:~
/
#include <iostream>
#include <vector>
using namespace std;
//或者必须返回一个指针,被用于选择指针间接引用运算符箭头所指向的内容。
class Obj {
public:
void h() { cout << "4556" << endl; }
};
class ObjContainer {
Obj a;
public:
Obj* operator->() {
return &a;
}
};
void main() {
ObjContainer sp;
sp->h();
} ///:~
///
#include <iostream>
#include <vector>
using namespace std;
//或者必须返回一个指针,被用于选择指针间接引用运算符箭头所指向的内容。
class Obj {
public:
void h() { cout << "4556" << endl; }
};
class ObjContainer {
Obj *point;
public:
Obj* operator->() {
return point;
}
};
void main() {
ObjContainer sp;
sp->h();
}
重载指针运算符
最新推荐文章于 2024-06-15 22:21:25 发布