- 论坛徽章:
- 0
|
如果用C++,请参TC++PL 14.4
主要技术:资源申请即初始化
- #include <iostream>
- #include <memory>
- class X {
- public:
- X(int n = 20) : ptr(new char[n]) { strcpy(ptr, "Hello, world"); }
- // X(const X&);
- //~X() { delete[] ptr; }
- // X& operator=(const X&);
- char* operator->() const { return ptr;}
- // operator char*() const { return ptr;}
- // char* operator()() const { return ptr; }
- private:
- char* ptr;
- };
- int main()
- {
- char* p = 0;
- {
- X x;
- p = x.operator->();
- // p = x;
- // p = x();
- std::cout << p << std::endl;
- }
- // p指向的存储空间未被释放(class X中去掉在析够函数上的注释,就可以了)
- std::cout << p << std::endl;
- return 0;
- }
复制代码
[ 本帖最后由 westgarden 于 2007-4-5 11:54 编辑 ] |
|