wctest55.cpp

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C++ 代码 · 共 173 行

CPP
173
字号
#include <iostream.h>
#include <wclist.h>
#include <wclistit.h>

class testIsvList : public WCDLink {
private:
    testIsvList( const testIsvList & );
    testIsvList &operator=( const testIsvList & );
    int i;
public:
// used by this test
    testIsvList( int data ) : i( data ) {};
    int data() { return( i ); };
};

class testValList {
private:
    int i;
    testValList & operator=( const testValList & );
public:
// required by WCValS/DList
    testValList() : i( 0 ) {};
    testValList( const testValList &l ) { i = l.i; };
    int operator==( const testValList &r ) const {
	return( i == r.i );
    };
// used by this test
    testValList( int data ) : i( data ) {};
    int data() { return( i ); };
};

class testPtrList {
private:
    int i;
    testPtrList( const testPtrList &l );
    testPtrList();
    testPtrList & operator=( const testPtrList & );
public:
// required by WCPtrS/DList
    int operator==( const testPtrList &r ) const {
	return( i == r.i );
    };
// used by this test
    testPtrList( int data ) : i( data ) {};
    int data() { return( i ); };
};

void test1();
void test2();
void test3();
void test4();
void test5();
void test6();

int main() {
    test1();
    test2();
    test3();
    test4();
    test5();
    test6();
    return 0;
}

void test1() {
    WCIsvSList<testIsvList> list;
    testIsvList i( 0 );
    testIsvList j( 1 );
    testIsvList k( 2 );

    list.insert( &i );
    list.insert( &j );
    list.insert( &k );

    WCIsvSListIter<testIsvList> iter( list );
    while( ++iter ) {
	cout << iter.current()->data() << " ";
    }
    cout << "\n";
    cout.flush();
};


void test2() {
    WCIsvDList<testIsvList> list;
    testIsvList i( 0 );
    testIsvList j( 1 );
    testIsvList k( 2 );

    list.insert( &i );
    list.insert( &j );
    list.insert( &k );

    WCIsvDListIter<testIsvList> iter( list );
    while( ++iter ) {
	cout << iter.current()->data() << " ";
    }
    cout << "\n";
    cout.flush();
};

void test3() {
    WCValSList<testValList> list;
    testValList i( 0 );
    testValList j( 1 );
    testValList k( 2 );

    list.insert( i );
    list.insert( j );
    list.insert( k );

    WCValSListIter<testValList> iter( list );
    while( ++iter ) {
	cout << iter.current().data() << " ";
    }
    cout << "\n";
    cout.flush();
};

void test4() {
    WCValDList<testValList> list;
    testValList i( 0 );
    testValList j( 1 );
    testValList k( 2 );

    list.insert( i );
    list.insert( j );
    list.insert( k );

    WCValDListIter<testValList> iter( list );
    while( ++iter ) {
	cout << iter.current().data() << " ";
    }
    cout << "\n";
    cout.flush();
};

void test5() {
    WCPtrSList<testPtrList> list;
    testPtrList i( 0 );
    testPtrList j( 1 );
    testPtrList k( 2 );

    list.insert( &i );
    list.insert( &j );
    list.insert( &k );

    WCPtrSListIter<testPtrList> iter( list );
    while( ++iter ) {
	cout << iter.current()->data() << " ";
    }
    cout << "\n";
    cout.flush();
};

void test6() {
    WCPtrDList<testPtrList> list;
    testPtrList i( 0 );
    testPtrList j( 1 );
    testPtrList k( 2 );

    list.insert( &i );
    list.insert( &j );
    list.insert( &k );

    WCPtrDListIter<testPtrList> iter( list );
    while( ++iter ) {
	cout << iter.current()->data() << " ";
    }
    cout << "\n";
    cout.flush();
};

⌨️ 快捷键说明

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