🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309652

Destructor a funkcja wirtualna

#309652
From: Borneq
Date: Thu, 15 Mar 2018 18:41
20 lines
1613 bytes
Mam klasę abstrakcyjną Node i metodę wirtualną toString()
chcę podczas kasowania obiektów wypisywać nazwę tego obiektu:
	virtual ~Node()
	{
		printf("delete %s\n",toString().c_str());
	}

Nie udało się zrobić:
virtual string toString() = 0
zrobiłem
virtual string toString(){ return "abstract";};	

nadpisuję te metodę w klasach ,ale i tak destructor woła ją nie wirtualnie.
Pytanie: jak zrobić wypisywanie w destructorze elementów które kasuje 
podczas gdy korzystam z takich pól jak name, które jest zdefiniowane w 
innych klasach?
Ale chyba rozumiem w czym problem, ten destruktor to za późne 
przechwycenie, bo w toString miałem wypisywać całe drzewka mające w 
korzeniu obiekt Node na rzecz którego wołam, a w destruktorze i tak 
byłyby pokasowane.
Technical Details
Message-ID: <p8eep1$7an$1@node1.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Borneq <borneq@antyspam.hidden.pl>
Newsgroups: pl.comp.lang.c
Subject: Destructor a funkcja wirtualna
Date: Thu, 15 Mar 2018 19:41:37 +0100
Organization: ATMAN - ATM S.A.
Lines: 20
Message-ID: <p8eep1$7an$1@node1.news.atman.pl>
NNTP-Posting-Host: public-gprs350577.centertel.pl
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1521139297 7511 37.47.0.178 (15 Mar 2018 18:41:37 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Thu, 15 Mar 2018 18:41:37 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0
X-Mozilla-News-Host: news://news.atman.pl:119
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit