cpp20.cpp

来自「C++参考书」· C++ 代码 · 共 80 行

CPP
80
字号

// Coded by plusir -- Dec.30.2002.
// Standard C++ Bible -- (P319-11-20)

#include <iostream>
#include <string>
using namespace std ;

class ListEntry
{
	public:
		ListEntry( char * ) ;
		~ListEntry( void ) ;
		ListEntry* prevEntry( void ) const ;
		void display( void ) const ;
		void addEntry( ListEntry & ) ;

	private:
		char *listValue ;
		ListEntry *prev ;
} ;

ListEntry::ListEntry( char *s )
{
	listValue = new char[strlen( s ) + 1] ;
	strcpy( listValue, s ) ;
	prev = NULL ;
}

ListEntry::~ListEntry( void )
{
	delete [] listValue ;
}

ListEntry* ListEntry::prevEntry( void ) const
{
	return prev ;
}

void ListEntry::display( void ) const
{
	cout << endl << listValue ;
}

void ListEntry::addEntry( ListEntry &l )
{
	l.prev = this ;
}

int main()
{
	ListEntry* prev = NULL ;

	while ( 1 ) {
		cout << endl << "Enter a name( \"end\" when done ): " ;
		char name[25] ;
		cin >> name ;

		if ( strncmp( name, "end", 3 ) == 0 )
			break ;

		ListEntry* list = new ListEntry( name ) ;
		if ( prev != NULL )
			prev->addEntry( *list ) ;
		prev = list ;
	}

	while ( prev != NULL ) {
		prev->display() ;
		ListEntry *hold = prev ;

		prev = prev->prevEntry() ;

		delete hold ;
	}
	cout << endl ;

	return 0 ;
}

⌨️ 快捷键说明

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