If you are looking for storage of the chat log, keeping a record of the last /n/ items is a great application of a circular buffer. Old items naturally drop out of the list as new items are added.
If you are looking for some other aspect of implementing a chat log, you'll need to be more specific.
That is a great concept i will build from it.
If you are looking for some help on implementation I've written a message list / box in C# and XNA which you can find here: https://github.com/albinodervall/Roguelike/blob/master/Roguelike/Interface/MessageList.cs
It uses some XNA specific stuff like measuring the length in pixels of a string and such but the general idea is there. It supports the ability to colour your text, for example:
$Red Hello, $Green BaneTrapper
Would come out as:
Hello, BaneTrapper
It also support word-wrapping when a message becomes too long.
I hope it will help you somewhere on your way.
I have not yet done a application that mixes c++ with c#. Not sure can it be done, but from what i heard it should be possible.
About the Chat log What have i done till now is.
When a action like attack, defend or spell is executed. string log(unit1 attacked unit2 damaging for 50 hit points)is pushed intro a data holder for chat.
When am displaying chat log for user to see. Its drawing from data holder for chat until it cant draw no more(next text wont fit intro displaying area).
When displayed string width is greater then the max size of chat log width, i cut the string intro two parts and display it twice so it fits.
Everything was more simpler then it looked in "think of what i need to do" process. Ive got a chat log that am happy with.
What would be nice to look at code of other chat logs, or maybe a tutorial, if you know / have some it would be useful to check it just for ideas sake.