<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27;]]></title><description><![CDATA[<p>Hallo</p>
<p>Bei folgenden Code bekomme ich an der markierten Stelle die Fehlermeldung, wenn ich diese Stelle auskommentiere dann nicht, was soll das:</p>
<pre><code class="language-cpp">void CMp3TagsDlg::OnBnClickedChoosefiles()
{
	CFileDialog Dialog(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT);
	CArray&lt;CID3Tag&gt; Tags;
	if(Dialog.DoModal() == IDOK)
	{
		POSITION pos = Dialog.GetStartPosition( );
		while(pos != NULL)
		{
			CID3Tag Temp;
			Temp.GetID3Tag(Dialog.GetNextPathName(pos));
			Tags.Add(Temp); //genau hier sitzt das Problem
		}
	}
	CStdioFile FileToWriteIn;
	FileToWriteIn.Open(_T(&quot;c:\\Hallo.txt&quot;), CStdioFile::modeCreate | CStdioFile::modeWrite);
	if(FileToWriteIn)
	{
		for(int i=0; i&lt;Tags.GetSize(); ++i)
			FileToWriteIn.WriteString(Tags[i].m_strTitle + _T(&quot;\n&quot;));
		MessageBox(_T(&quot;Datei erstellt&quot;));
	}
	else
		MessageBox(_T(&quot;Dateierstellen fehlgeschlagen&quot;));

}
</code></pre>
<p>Grundsätzlich, weiß ich schon, was die Fehlermeldung mir sagen will, aber ich kann es in diesem Zusammenhang nicht verstehen, weil ich keine Stelle im Code finde, bei der operator= von CObject genutzt wird.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163481/c2248-cobject-operator-cannot-access-private-member-declared-in-class-cobject</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 13:08:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163481.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Oct 2006 07:46:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Mon, 30 Oct 2006 07:46:53 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Bei folgenden Code bekomme ich an der markierten Stelle die Fehlermeldung, wenn ich diese Stelle auskommentiere dann nicht, was soll das:</p>
<pre><code class="language-cpp">void CMp3TagsDlg::OnBnClickedChoosefiles()
{
	CFileDialog Dialog(TRUE, NULL, NULL, OFN_ALLOWMULTISELECT);
	CArray&lt;CID3Tag&gt; Tags;
	if(Dialog.DoModal() == IDOK)
	{
		POSITION pos = Dialog.GetStartPosition( );
		while(pos != NULL)
		{
			CID3Tag Temp;
			Temp.GetID3Tag(Dialog.GetNextPathName(pos));
			Tags.Add(Temp); //genau hier sitzt das Problem
		}
	}
	CStdioFile FileToWriteIn;
	FileToWriteIn.Open(_T(&quot;c:\\Hallo.txt&quot;), CStdioFile::modeCreate | CStdioFile::modeWrite);
	if(FileToWriteIn)
	{
		for(int i=0; i&lt;Tags.GetSize(); ++i)
			FileToWriteIn.WriteString(Tags[i].m_strTitle + _T(&quot;\n&quot;));
		MessageBox(_T(&quot;Datei erstellt&quot;));
	}
	else
		MessageBox(_T(&quot;Dateierstellen fehlgeschlagen&quot;));

}
</code></pre>
<p>Grundsätzlich, weiß ich schon, was die Fehlermeldung mir sagen will, aber ich kann es in diesem Zusammenhang nicht verstehen, weil ich keine Stelle im Code finde, bei der operator= von CObject genutzt wird.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164236</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 30 Oct 2006 07:46:53 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Mon, 30 Oct 2006 14:14:14 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich würde das gerne mal schieben, weil ich immer noch keine Lösung gefunden habe.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164508</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164508</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 30 Oct 2006 14:14:14 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Mon, 30 Oct 2006 14:23:21 GMT]]></title><description><![CDATA[<p>Der Zuweisungsoperator von CObject ist private. Offenbar hast du CID3Tag davon abgeleitet, aber den Zuweisungsoperator nicht überschrieben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164514</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 30 Oct 2006 14:23:21 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Mon, 30 Oct 2006 14:25:06 GMT]]></title><description><![CDATA[<p>Wie sieht denn die Klasse CID3Tag aus? Vermutlich ist da etwas drin, womit die Default-Zuweisung nicht zurechtkommt (wenn ich die Fehlermeldung richtig deute, ist der Zuweisungsoperator in der Basisklasse nicht verfügbar).</p>
<p>Der Fehler selber dürfte in der Methode Add() liegen, wo das Array über operator= den neuen Wert zugewiesen bekommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164515</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 30 Oct 2006 14:25:06 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Mon, 30 Oct 2006 15:11:12 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Die Klase CID3Tag habe ich aus dem Netz und sie sieht fogendermaßen aus:</p>
<p>hpp:</p>
<pre><code class="language-cpp">#if !defined(AFX_ID3TAG_H)
#define AFX_ID3TAG_H

#if _MSC_VER &gt; 1000
#pragma once
#endif // _MSC_VER &gt; 1000

class CID3Tag  
{
public:
	// Konstruktor
	CID3Tag();
	// Destruktor
	virtual ~CID3Tag();

	// Daten Gültig 
	BOOL m_bValide;
	// ID3 Version 1.0 oder 1.1
	BOOL m_bIDV10;
	// Titel
	CString m_strTitle;
	// Artist
	CString m_strArtist;
	// Album
	CString m_strAlbum;
	// Jahr
	CString m_strYear;
	// Kommentae
	CString m_strComment;
	// Track bei ID3 Version 1.1
	CString m_strTrack;
	// Genre
	CString m_strGenre;
	// Liste mit gültigen Genre Einträgen
	CStringList m_lstGenreList;

	// Schreibt ID3 Tag in angegebene Datei
	int WriteID3Tag(CString FileName);
	// Liest ID3 Tag aus angegebener Datei
	int GetID3Tag(CString FileName);
	// Löscht ID3 Tag aus angegebener Datei
	int RemoveID3Tag(CString FileName);

private:
	// Liest Daten aus Datei
	int GetData(HANDLE hFile);
	// Schreibt Daten in Buffer
	int WriteBuf(char *Buf, CString strText, int iOffset, int iCount);
	// Schreibt Daten in Datei
	int WriteData(HANDLE hFile);
	// Initialisiert Genre Liste
	void FillGenreList();
	// Ermittelt ID aus Genre
	char GetGenreID(CString strGenre);
	// Ermittelt Genre aus ID
	CString GetGenre(unsigned char uchNumber);
	// Liest String aus Buffer
	CString GetString(char *Buff, int Offset, int iCount);
};

#endif // !defined(AFX_ID3TAG_H)
</code></pre>
<p>und die cpp:</p>
<pre><code>#include &quot;stdafx.h&quot;
#include &quot;ID3Tag.h&quot;

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CID3Tag::CID3Tag()
{
	m_bValide=FALSE;
	m_bIDV10=TRUE;

	FillGenreList();
}

CID3Tag::~CID3Tag()
{

}

/**********************************************************************
ID3 Tag lesen Funktionen
**********************************************************************/
CString CID3Tag::GetString(char *Buff, int Offset, int iCount)
{
	char *p;							// Pointer auf Buffer
	char *strTemp=new char[iCount+1];	// Temp String
	CString strResult;					// Ergebniss

	// Daten aus Buffer holen
	p=Buff+Offset;
	strncpy(strTemp, p, iCount);
	strTemp[iCount]='\0';
	strResult=strTemp;
	strResult.TrimRight(' ');

	free(strTemp);
	return strResult;
}

int CID3Tag::GetData(HANDLE hFile)
{
	m_bValide=FALSE;	// Daten als nicht Gültig makieren

	if ( hFile == INVALID_HANDLE_VALUE)
		return -1;	// MP3 konnte nicht geöffnet werden

	char ReadBuf[128];   // LeseBuffer
	DWORD nBytesRead;   // Anzahl der gelesenen Bytes

	SetFilePointer(hFile, -128, NULL, FILE_END); // Datei Pointer auf ID3Tag setzten

	// ID3Tag lesen
	ReadFile(hFile, ReadBuf, 128, &amp;nBytesRead, NULL);

	// Keine 128 Bytes gelesen-&gt;Fehler
	if (nBytesRead!=128)
		return -2;

	// Tag eintrag vorhanden ?
	if ( (ReadBuf[0]!='T') || (ReadBuf[1]!='A') || (ReadBuf[2]!='G') )
		return 1;

	// Strings holen
	m_strTitle=GetString(ReadBuf, 3, 30);
	m_strArtist=GetString(ReadBuf, 33, 30);
	m_strAlbum=GetString(ReadBuf, 63, 30);
	m_strYear=GetString(ReadBuf, 93, 4);

	// Ermitteln ob es sich um Version 1.0 oder 1.1 handelt
	m_bIDV10 = (ReadBuf[125] != '\0');

	if (m_bIDV10)
	{	// Version 1.0
		m_strComment=GetString(ReadBuf, 97, 30);
		m_strTrack=&quot;&quot;;
	} else
	{	// Version 1.1
		m_strComment=GetString(ReadBuf, 97, 28);
		m_strTrack.Format(&quot;%u&quot;, ReadBuf[126]);
	}

	// Genre lesen
	m_strGenre=GetGenre(ReadBuf[127]);

	m_bValide=TRUE;	// Daten als Gültig makieren

	return 0;
}

/**	Function GetID3Tag
***		in : Dateiname der MP3-Datei
***		out: Fehlercode	 0 Alles in Ordnung
***						 1 ID3Tag nicht vorhanden
***						-1 Datei konnte nicht geöffnet werden
***						-2 Daten konnten nicht gelsesen werden
***/
int CID3Tag::GetID3Tag(CString FileName)
{	
	HANDLE hFile;	// MP3 öffnen
	hFile = CreateFile(FileName,			// Filename mit Pfad
				GENERIC_READ,				// Access Mode
				FILE_SHARE_READ,			// Read sharing 
				NULL,						// no security attributes
				OPEN_EXISTING,				// opens existing  
				FILE_ATTRIBUTE_NORMAL,		// default attributes 
				NULL);						// no template file 

	int nID=GetData(hFile);

	CloseHandle(hFile); // MP3 Datei schliessen	
	return nID;
}
/**********************************************************************
Ende ID3 Tag lesen Funktionen
**********************************************************************/

/**********************************************************************
ID3 Tag schreiben Funktionen
**********************************************************************/
int CID3Tag::WriteBuf(char *Buf, CString strText, int iOffset, int iCount)
{
	char *p = Buf+iOffset; // Zeiger auf Buffer Position setzen

	// Daten in Buffer schreiben
	for (int i=0; i&lt;iCount; i++)
		if (i&lt;strText.GetLength())
			p[i]=strText.GetAt(i);
		else
			p[i]=0x20;

	return 0;
}

int CID3Tag::WriteData(HANDLE hFile)
{
	m_bValide=FALSE;	// Daten als nicht gultig makieren

	if ( hFile == INVALID_HANDLE_VALUE)
		return -1;	// MP3 konnte nicht geöffnet werden

	char Buf[128];		 // Lese-/Schreib Buffer
	DWORD nBytesRead;   // Anzahl der gelesenen Bytes
	DWORD nBytesWritten;// Anzahl der geschriebenen Bytes

	SetFilePointer(hFile, -128, NULL, FILE_END); // Datei Pointer auf ID3Tag setzten

	ReadFile(hFile, &amp;Buf, 128, &amp;nBytesRead, NULL);

	// Tag eintrag vorhanden ?
	if ( (Buf[0]!='T') || (Buf[1]!='A') || (Buf[2]!='G') || (nBytesRead!=128) )
		SetFilePointer(hFile, 0, NULL, FILE_END); // Datei Pointer ans Ende setzten um neuen ID3 Tag zu schreiben
	else
		SetFilePointer(hFile, -128, NULL, FILE_END); // sonst Datei Pointer auf ID3Tag setzten

	// Daten in Buffer schreiben
	WriteBuf(Buf, &quot;TAG&quot;, 0, 3);	
	WriteBuf(Buf, m_strTitle,    3, 30);
	WriteBuf(Buf, m_strArtist,  33, 30);
	WriteBuf(Buf, m_strAlbum,   63, 30);
	WriteBuf(Buf, m_strYear,    93,  4);

	// Version 1.0 oder 1.1 ?
	if (m_bIDV10)
		WriteBuf(Buf, m_strComment, 97, 30);
	else
	{
		WriteBuf(Buf, m_strComment,  97, 28);
		UINT uTemp;
		sscanf(m_strTrack, &quot;%d&quot;, &amp;uTemp);	
		Buf[125] = '\0';
		Buf[126] = uTemp;
	}

	Buf[127]=GetGenreID(m_strGenre);

	// Buffer in Datei schreiben
	WriteFile(hFile, &amp;Buf, 128, &amp;nBytesWritten, NULL);
	if (nBytesWritten!=128)
		return -2;

	m_bValide=TRUE;		// Daten als Gültig makieren
	return 0;
}

/**	Function WriteID3Tag
***		in : Dateiname der MP3-Datei
***		out: Fehlercode  0 Alles in Ordnung
***						-1 Datei konnte nicht geöffnet werden
***						-2 Fehler beim schreiben
***/
int CID3Tag::WriteID3Tag(CString FileName)
{
	m_bValide=FALSE;

	HANDLE hFile;		// MP3 öffnen
	hFile = CreateFile(FileName,				// Filename mit Pfad
				GENERIC_READ | GENERIC_WRITE,	// Access Mode
				0,								// no sharing 
				NULL,							// no security attributes
				OPEN_EXISTING,					// opens existing  
				FILE_ATTRIBUTE_NORMAL,			// default attributes 
				NULL);							// no template file 

	int nID=WriteData(hFile);
	CloseHandle(hFile); // MP3 Datei schliessen	
	return nID;
}
/**********************************************************************
Ende der ID3 Tag schreiben Funktionen
**********************************************************************/

/**********************************************************************
ID3 Tag Remove Funktionen
**********************************************************************/

/**	Function RemoveID3Tag
***		in : Dateiname der MP3-Datei
***		out: Fehlercode	 0 Alles in Ordnung
***						 1 ID3Tag nicht vorhanden
***						-1 Datei konnte nicht geöffnet werden
***/
int CID3Tag::RemoveID3Tag(CString FileName)
{
	m_bValide=FALSE;

	HANDLE hFile;		// MP3 öffnen
	hFile = CreateFile(FileName,				// Filename mit Pfad
				GENERIC_READ | GENERIC_WRITE,	// Access Mode
				0,								// no sharing 
				NULL,							// no security attributes
				OPEN_EXISTING,					// opens existing  
				FILE_ATTRIBUTE_NORMAL,			// default attributes 
				NULL);							// no template file 

	int nID=0;

	if ( hFile == INVALID_HANDLE_VALUE)
		nID=-1;	// MP3 konnte nicht geöffnet werden
	else
	{
		char Buf[128];		 // Lese-/Schreib Buffer
		DWORD nBytesRead;   // Anzahl der gelesenen Bytes

		SetFilePointer(hFile, -128, NULL, FILE_END); // Datei Pointer auf ID3Tag setzten
		ReadFile(hFile, &amp;Buf, 128, &amp;nBytesRead, NULL);

		// Tag eintrag vorhanden ?
		if ( (Buf[0]!='T') || (Buf[1]!='A') || (Buf[2]!='G') || (nBytesRead!=128) )
			nID=1;
		else
		{
			SetFilePointer(hFile, -128, NULL, FILE_END); // Datei Pointer auf ID3Tag setzten
			SetEndOfFile(hFile);		// und abschneiden
		}
	}

	CloseHandle(hFile); // MP3 Datei schliessen	
	return nID;
}
/**********************************************************************
Ende der ID3 Tag Remove Funktionen
**********************************************************************/

/**********************************************************************
Genre Funktionen
**********************************************************************/
CString CID3Tag::GetGenre(unsigned char uchNumber)
{
	// Genre Text aus ID bestimmen
	CString Temp;
	POSITION pos;
	pos=m_lstGenreList.FindIndex(uchNumber); //iNumber);

	if (pos==NULL)
		return &quot;&quot;;
	else
		return m_lstGenreList.GetAt(pos);
}

char CID3Tag::GetGenreID(CString strGenre)
{
	// Genre ID aus Text bestimmen
	POSITION pos;
	int i=0;
	pos=m_lstGenreList.GetHeadPosition();

	while ( (i&lt;m_lstGenreList.GetCount()) &amp;&amp; (strGenre.CompareNoCase(m_lstGenreList.GetNext(pos))!=0) )
		i++;

	if (i==m_lstGenreList.GetCount()) i=0xff;

	return i;
}

void CID3Tag::FillGenreList()
{
	// m_lstGenreList mit Daten füllen
	CString Entries[]={
	&quot;Blues&quot;,					&quot;Classic Rock&quot;,		&quot;Country&quot;,			&quot;Dance&quot;,				&quot;Disco&quot;,			&quot;Funk&quot;,				&quot;Grunge&quot;,
	&quot;Hip-Hop&quot;,					&quot;Jazz&quot;,				&quot;Metal&quot;,			&quot;New Age&quot;,				&quot;Oldies&quot;,			&quot;Other&quot;,			&quot;Pop&quot;,	
	&quot;R&amp;B&quot;,						&quot;Rap&quot;,				&quot;Reggae&quot;,			&quot;Rock&quot;,					&quot;Techno&quot;,			&quot;Industrial&quot;,		&quot;Alternative&quot;,
	&quot;Ska&quot;,						&quot;Death Metal&quot;,		&quot;Pranks&quot;,			&quot;Soundtrack&quot;,			&quot;Euro-Techno&quot;,		&quot;Ambient&quot;,			&quot;Trip-Hop&quot;,
	&quot;Vocal&quot;,					&quot;Jazz+Funk&quot;,		&quot;Fusion&quot;,			&quot;Trance&quot;,				&quot;Classical&quot;,		&quot;Instrumental&quot;,		&quot;Acid&quot;,
	&quot;House&quot;,					&quot;Game&quot;,				&quot;Sound Clip&quot;,		&quot;Gospel&quot;,				&quot;Noise&quot;,			&quot;Alt. Rock&quot;,		&quot;Bass&quot;,
	&quot;Soul&quot;,						&quot;Punk&quot;,				&quot;Space&quot;,			&quot;Meditative&quot;,			&quot;Instrumental Pop&quot;,	&quot;Instrumental Rock&quot;,&quot;Ethnic&quot;,
	&quot;Gothic&quot;,					&quot;Darkwave&quot;,			&quot;Techno-Industrial&quot;,&quot;Electronic&quot;,			&quot;Pop-Folk&quot;,			&quot;Eurodance&quot;,		&quot;Dream&quot;,
	&quot;Southern Rock&quot;,			&quot;Comedy&quot;,			&quot;Cult&quot;,				&quot;Gangsta&quot;,				&quot;Top 40&quot;,			&quot;Christian Rap&quot;,	&quot;Pop/Funk&quot;,
	&quot;Jungle&quot;,					&quot;Native American&quot;,	&quot;Cabaret&quot;,			&quot;New Wave&quot;,				&quot;Psychadelic&quot;,		&quot;Rave&quot;,				&quot;Showtunes&quot;,
	&quot;Trailer&quot;,					&quot;Lo-Fi&quot;,			&quot;Tribal&quot;,			&quot;Acid Punk&quot;,			&quot;Acid Jazz&quot;,		&quot;Polka&quot;,			&quot;Retro&quot;,
	&quot;Musical&quot;,					&quot;Rock &amp; Roll&quot;,		&quot;Hard Rock&quot;,		&quot;Folk&quot;,					&quot;Folk/Rock&quot;,		&quot;National Folk&quot;,	&quot;Swing&quot;,
	&quot;Fusion&quot;,					&quot;Bebob&quot;,			&quot;Latin&quot;,			&quot;Revival&quot;,				&quot;Celtic&quot;,			&quot;Bluegrass&quot;,		&quot;Avantgarde&quot;,
	&quot;Gothic Rock&quot;,				&quot;Progressive Rock&quot;,	&quot;Psychedelic Rock&quot;,	&quot;Symphonic Rock&quot;,		&quot;Slow Rock&quot;,		&quot;Big Band&quot;,			&quot;Chorus&quot;,
	&quot;Easy Listening&quot;,			&quot;Acoustic&quot;,			&quot;Humour&quot;,			&quot;Speech&quot;,				&quot;Chanson&quot;,			&quot;Opera&quot;,			&quot;Chamber Music&quot;,
	&quot;Sonata&quot;,					&quot;Symphony&quot;,			&quot;Booty Bass&quot;,		&quot;Primus&quot;,				&quot;Porn Groove&quot;,		&quot;Satire&quot;,			&quot;Slow Jam&quot;,
	&quot;Club&quot;,						&quot;Tango&quot;,			&quot;Samba&quot;,			&quot;Folklore&quot;,				&quot;Ballad&quot;,			&quot;Power Ballad&quot;,		&quot;Rhythmic Soul&quot;,
	&quot;Freestyle&quot;,				&quot;Duet&quot;,				&quot;Punk Rock&quot;,		&quot;Drum Solo&quot;,			&quot;A capella&quot;,		&quot;Euro-House&quot;,		&quot;Dance Hall&quot;,
	&quot;Goa&quot;,						&quot;Drum &amp; Bass&quot;,		&quot;Club-House&quot;,		&quot;Hardcore&quot;,				&quot;Terror&quot;,			&quot;Indie&quot;,			&quot;BritPop&quot;,
	&quot;Negerpunk&quot;,				&quot;Polsk Punk&quot;,		&quot;Beat&quot;,				&quot;Christian Gangsta Rap&quot;,&quot;Heavy Metal&quot;,		&quot;Black Metal&quot;,		&quot;Crossover&quot;,
	&quot;Contemporary Christian&quot;,	&quot;Christian Rock&quot;,	&quot;Merengue&quot;,			&quot;Salsa&quot;,				&quot;Thrash Metal&quot;,		&quot;Anime&quot;,			&quot;JPop&quot;,
	&quot;Synthpop&quot;
	};

	for (int i=0; i&lt;(sizeof(Entries)/sizeof(CString)); i++)
		m_lstGenreList.AddTail(Entries[i]);
}
/**********************************************************************
Ende Genre Funktionen
**********************************************************************/
</code></pre>
<p>Sorry für den ganzen Code, aber ich wollte euch nichts vorenthalten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164563</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 30 Oct 2006 15:11:12 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Mon, 30 Oct 2006 15:18:06 GMT]]></title><description><![CDATA[<p>chrische5 schrieb:</p>
<blockquote>
<p>Sorry für den ganzen Code, aber ich wollte euch nichts vorenthalten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Die Headerdatei hätte hier gereicht.</p>
<p>Die Klasse hat CStringList-Member. CStringList ist nicht kopierbar, damit sind Objekte dieser Klasse auch nicht kopierbar. Und daher kannst du sie nicht in CArray packen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164570</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 30 Oct 2006 15:18:06 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Mon, 30 Oct 2006 17:30:48 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Blöde Frage, aber sie schließt sich logisch an deine Antwort: was kann man den da machen? Den Copy'tor überschreiben?</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164751</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 30 Oct 2006 17:30:48 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Mon, 30 Oct 2006 18:02:46 GMT]]></title><description><![CDATA[<p>chrische5 schrieb:</p>
<blockquote>
<p>was kann man den da machen? Den Copy'tor überschreiben?</p>
</blockquote>
<p>Ich würde eher CStringArray durch eine Containerklasse ersetzen, die kopiert werden kann, z.B. std::vector.</p>
<p>Ich weiß ja nicht, wo du diese Klasse gefunden hast, aber so besonders toll ist der Code nicht. In GetString wird Speicher, der mit new geholt wurde, mit free wieder freigegeben. Und dass jede Instanz dieser Klasse eine eigene Genreliste mit sich herumschleppt, ist auch nicht gerade schlau.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164779</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 30 Oct 2006 18:02:46 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Mon, 30 Oct 2006 18:06:42 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>MFK schrieb:</p>
<blockquote>
<p>chrische5 schrieb:</p>
<blockquote>
<p>was kann man den da machen? Den Copy'tor überschreiben?</p>
</blockquote>
<p>Ich würde eher CStringArray durch eine Containerklasse ersetzen, die kopiert werden kann, z.B. std::vector.</p>
</blockquote>
<p>Das Problem war doch aber CStringList oder habe ich da was falsch verstanden?</p>
<p>MFK schrieb:</p>
<blockquote>
<p>Ich weiß ja nicht, wo du diese Klasse gefunden hast, aber so besonders toll ist der Code nicht. In GetString wird Speicher, der mit new geholt wurde, mit free wieder freigegeben. Und dass jede Instanz dieser Klasse eine eigene Genreliste mit sich herumschleppt, ist auch nicht gerade schlau.</p>
</blockquote>
<p>Habe ich im Netz gefunden. Ich will ein kleines Programm schreiben und dazu muss IDTags auslesen. Das wollte ich aber nicht selber schreiben und habe eine einfach zu bedienende Klasse gesucht. Hast du einen besseren Tipp?</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164783</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 30 Oct 2006 18:06:42 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Mon, 30 Oct 2006 18:24:09 GMT]]></title><description><![CDATA[<p>chrische5 schrieb:</p>
<blockquote>
<p>Das Problem war doch aber CStringList oder habe ich da was falsch verstanden?</p>
</blockquote>
<p>Nein, mein Fehler. Ich meinte CStringList.</p>
<blockquote>
<p>Habe ich im Netz gefunden. Ich will ein kleines Programm schreiben und dazu muss IDTags auslesen. Das wollte ich aber nicht selber schreiben und habe eine einfach zu bedienende Klasse gesucht. Hast du einen besseren Tipp?</p>
</blockquote>
<p>Wenn du es selbst auch nicht besser hinbekommst, dann nimm den Code. Ich wollte dich nur darauf hinweisen, etwas ordentliches kann ich gerade auch nicht aus dem Ärmel schütteln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164789</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 30 Oct 2006 18:24:09 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Mon, 30 Oct 2006 18:31:14 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>MFK schrieb:</p>
<blockquote>
<p>chrische5 schrieb:</p>
<blockquote>
<p>Das Problem war doch aber CStringList oder habe ich da was falsch verstanden?</p>
</blockquote>
<p>Nein, mein Fehler. Ich meinte CStringList.</p>
</blockquote>
<p>Ist std::list kopierbar?</p>
<p>MFK schrieb:</p>
<blockquote>
<blockquote>
<p>Habe ich im Netz gefunden. Ich will ein kleines Programm schreiben und dazu muss IDTags auslesen. Das wollte ich aber nicht selber schreiben und habe eine einfach zu bedienende Klasse gesucht. Hast du einen besseren Tipp?</p>
</blockquote>
<p>Wenn du es selbst auch nicht besser hinbekommst, dann nimm den Code. Ich wollte dich nur darauf hinweisen, etwas ordentliches kann ich gerade auch nicht aus dem Ärmel schütteln.</p>
</blockquote>
<p>Ich will mich gar nicht damit beschäftigen, weil mir das zuviel Stress für mein kleines Programm ist.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164797</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 30 Oct 2006 18:31:14 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Wed, 01 Nov 2006 08:24:44 GMT]]></title><description><![CDATA[<p>chrische5 schrieb:</p>
<blockquote>
<p>Hallo</p>
<p>MFK schrieb:</p>
<blockquote>
<p>chrische5 schrieb:</p>
<blockquote>
<p>Das Problem war doch aber CStringList oder habe ich da was falsch verstanden?</p>
</blockquote>
<p>Nein, mein Fehler. Ich meinte CStringList.</p>
</blockquote>
<p>Ist std::list kopierbar?</p>
</blockquote>
<p>Ja, ist es (wie alle STL-Container)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165943</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 01 Nov 2006 08:24:44 GMT</pubDate></item><item><title><![CDATA[Reply to C2248: &#x27;CObject::operator =&#x27; : cannot access private member declared in class &#x27;CObject&#x27; on Wed, 01 Nov 2006 08:27:25 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Danke. Das habe ich dann selber zu Hause nachgeschlagen. Ich habe es nun komplett anders gelöst und speichere erstmal die Dateinamen in einem CStringArray und arbeite dann nur mit einer Insatnz, die ich immer wieder neue Tags laden lasse.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1165947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1165947</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 01 Nov 2006 08:27:25 GMT</pubDate></item></channel></rss>