handleclass.cpp

来自「是内存受限系统设计的代码。」· C++ 代码 · 共 35 行

CPP
35
字号

#include <iostream.h>

#define PAUSE() (cin.get(),cin.get())

#define ASSERT( x )  \
((x) ? 0 : &(cout << #x ": Failed: " __FILE__ " " << __LINE__ << endl) \
&& PAUSE() ) 
#define SAY( x ) (cout << x)

class Object { public: int count; };

	Object * objectTable[];

template <class T> class Handle {
public:
	Handle( T** p ) : tableEntry( p ) {}
	// Default copy ctor, assignment, dtor.
	T* operator->() const { return ptr(); }
	T& operator*() const { return *ptr(); }
	operator T*() const { return ptr(); }
private:
	T* ptr() const { return *tableEntry; }
	T** tableEntry;
};


int main() {
    objectTable[0] = new Object;
    Handle<Object> p ( &(objectTable[0]) );
    p->count = 3;
    ASSERT( (*p).count == 3 );
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?