<?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[Zugriffsproblem innerhalb einer Klasse]]></title><description><![CDATA[<p>Hallo!<br />
Ich habe folgenden Code:<br />
Header:</p>
<pre><code class="language-cpp">#include&lt;string&gt;
#include&lt;iostream&gt;
#include&lt;fstream&gt;
#include&lt;list&gt;

class cConfigEntry
{
	public:
		~cConfigEntry()
	{
	}

	private:
	cConfigEntry()
	{
	}
	std::string KWord;
	void setKeyword(std::string _Keyword);
	std::string getKeyword() const;
	void setValue(std::string _Value);
	std::string getValue() const;
	std::string Val;
	Sort SortHow;
	bool operator&lt;(const cConfigEntry&amp; _Entry1,const cConfigEntry&amp; _Entry2);
	bool operator==(const cConfigEntry&amp; _Entry1,const cConfigEntry&amp; _Entry2);
	friend class cConfigFile;
};
</code></pre>
<p>Definition:</p>
<pre><code class="language-cpp">void cConfigEntry::setKeyword(string _Keyword)
{
	KWord=_Keyword;
	return;
}

string cConfigEntry::getKeyword() const
{
	return KWord;
}

void cConfigEntry::setValue(string _Value)
{
	Val=_Value;
	return;
}

string cConfigEntry::getValue() const
{
	return Val;
}

bool operator&lt;(const cConfigEntry&amp; _Entry1,const cConfigEntry&amp; _Entry2)
{
	if((std::strcmp((_Entry1.KWord).c_str(),(_Entry2.KWord).c_str())==-1)&amp;&amp;(cConfigFile.SortHow==BY_KEYWORD))
	{
		return true;
	}
	return false;
}

bool operator==(const cConfigEntry&amp; _Entry1,const cConfigEntry&amp; _Entry2)
{
	if((!std::strcmp((_Entry1.Keyword).c_str(),(_Entry2.Keyword).c_str()))&amp;&amp;(cConfigFile.SortHow==BY_KEYWORD))
	{
		return true;
	}
	return false;
}
</code></pre>
<p>Mein Compiler meckert, dass std::string KWord privat sei.<br />
Ich greife doch auf einen Member eines Objekts, derselben Klasse zu.<br />
Da muss ich doch auch Zugriff auf die privaten haben.<br />
Warum geht das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176956/zugriffsproblem-innerhalb-einer-klasse</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 16:49:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176956.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Mar 2007 18:42:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriffsproblem innerhalb einer Klasse on Mon, 26 Mar 2007 19:19:30 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Ich habe folgenden Code:<br />
Header:</p>
<pre><code class="language-cpp">#include&lt;string&gt;
#include&lt;iostream&gt;
#include&lt;fstream&gt;
#include&lt;list&gt;

class cConfigEntry
{
	public:
		~cConfigEntry()
	{
	}

	private:
	cConfigEntry()
	{
	}
	std::string KWord;
	void setKeyword(std::string _Keyword);
	std::string getKeyword() const;
	void setValue(std::string _Value);
	std::string getValue() const;
	std::string Val;
	Sort SortHow;
	bool operator&lt;(const cConfigEntry&amp; _Entry1,const cConfigEntry&amp; _Entry2);
	bool operator==(const cConfigEntry&amp; _Entry1,const cConfigEntry&amp; _Entry2);
	friend class cConfigFile;
};
</code></pre>
<p>Definition:</p>
<pre><code class="language-cpp">void cConfigEntry::setKeyword(string _Keyword)
{
	KWord=_Keyword;
	return;
}

string cConfigEntry::getKeyword() const
{
	return KWord;
}

void cConfigEntry::setValue(string _Value)
{
	Val=_Value;
	return;
}

string cConfigEntry::getValue() const
{
	return Val;
}

bool operator&lt;(const cConfigEntry&amp; _Entry1,const cConfigEntry&amp; _Entry2)
{
	if((std::strcmp((_Entry1.KWord).c_str(),(_Entry2.KWord).c_str())==-1)&amp;&amp;(cConfigFile.SortHow==BY_KEYWORD))
	{
		return true;
	}
	return false;
}

bool operator==(const cConfigEntry&amp; _Entry1,const cConfigEntry&amp; _Entry2)
{
	if((!std::strcmp((_Entry1.Keyword).c_str(),(_Entry2.Keyword).c_str()))&amp;&amp;(cConfigFile.SortHow==BY_KEYWORD))
	{
		return true;
	}
	return false;
}
</code></pre>
<p>Mein Compiler meckert, dass std::string KWord privat sei.<br />
Ich greife doch auf einen Member eines Objekts, derselben Klasse zu.<br />
Da muss ich doch auch Zugriff auf die privaten haben.<br />
Warum geht das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253271</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 26 Mar 2007 19:19:30 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsproblem innerhalb einer Klasse on Mon, 26 Mar 2007 18:52:08 GMT]]></title><description><![CDATA[<p>Der Stringvergleich ist echt mal Code of the Day.</p>
<p>Ansonsten hat der Compiler natürlich Recht, es ist privat lol...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253282</guid><dc:creator><![CDATA[Entenwickler]]></dc:creator><pubDate>Mon, 26 Mar 2007 18:52:08 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsproblem innerhalb einer Klasse on Mon, 26 Mar 2007 18:57:29 GMT]]></title><description><![CDATA[<p>Naja, deine Operator-Definitionen sind ja auch außerhalb des Klassenscopes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253284</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 26 Mar 2007 18:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsproblem innerhalb einer Klasse on Mon, 26 Mar 2007 19:21:13 GMT]]></title><description><![CDATA[<p>Entenwickler schrieb:</p>
<blockquote>
<p>Der Stringvergleich ist echt mal Code of the Day.</p>
<p>Ansonsten hat der Compiler natürlich Recht, es ist privat lol...</p>
</blockquote>
<p>Wieso, was ist denn an dem Stringvergleich auszusetzen? Abgesehen davon,<br />
dass der Rest des Codes nicht funktioniert.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253306</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 26 Mar 2007 19:21:13 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsproblem innerhalb einer Klasse on Mon, 26 Mar 2007 19:24:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#if !defined(CONFIG_ENTRY_H__INCLUDED)
#define CONFIG_ENTRY_H__INCLUDED

#include &lt;string&gt;

class ConfigEntry
{
private:
    ConfigEntry()	{}

public:
	~ConfigEntry()	{}

	bool operator &lt; (const ConfigEntry&amp; entry);
    bool operator == (const ConfigEntry&amp; entry);

public:
	void			set_keyword(const std::string&amp;);
	void			set_value(const std::string&amp;);
	std::string		get_keyword() const;
	std::string		get_value() const;

private:
	std::string		m_keyword;
    std::string		m_value;
};

#endif // CONFIG_ENTRY_H__INCLUDED
</code></pre>
<pre><code class="language-cpp">#include &quot;ConfigEntry.h&quot;

void ConfigEntry::set_keyword(const std::string&amp; keyword)
{
	m_keyword = keyword;
}

std::string ConfigEntry::get_keyword() const
{
    return m_keyword;
}

void ConfigEntry::set_value(const std::string&amp; value)
{
    m_value = value;
}

std::string ConfigEntry::get_value() const
{
    return m_value;
}

bool ConfigEntry::operator&lt;(const ConfigEntry&amp; entry)
{
	return (m_keyword &lt; entry.m_keyword);
}

bool ConfigEntry::operator == (const ConfigEntry&amp; entry)
{
	return (m_keyword == entry.m_keyword);
}
</code></pre>
<p>Das std::string selbst schon == implementiert hat usw ... hab deinen Filekram jetzt mal raus gelassen ... aber das wirst de ja noch selbst wieder rein bekommen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253308</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 26 Mar 2007 19:24:37 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsproblem innerhalb einer Klasse on Mon, 26 Mar 2007 19:24:12 GMT]]></title><description><![CDATA[<p>deine vergleichsoperatoren sind global definiert. d.h. außerhalb von deiner Klasse. Du musst die Operatoren als friend in der Klasse deklarieren, dann sollte es gehen.</p>
<p>Zum stringvergleich... *gg*<br />
was meinst du wozu der std::string::operator&lt;, operator&gt;, == und != da sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253309</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Mon, 26 Mar 2007 19:24:12 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffsproblem innerhalb einer Klasse on Mon, 26 Mar 2007 19:39:29 GMT]]></title><description><![CDATA[<p>Maxi schrieb:</p>
<blockquote>
<p>deine vergleichsoperatoren sind global definiert. d.h. außerhalb von deiner Klasse. Du musst die Operatoren als friend in der Klasse deklarieren, dann sollte es gehen.</p>
<p>Zum stringvergleich... *gg*<br />
was meinst du wozu der std::string::operator&lt;, operator&gt;, == und != da sind?</p>
</blockquote>
<p>Da hast du natürlich recht. Ich wusste gar nicht, dass die string-Klasse<br />
solche Operatoren bereitstellt. Warum einfach, wenn's auch kompliziert geht?<br />
Dann haben sich die Probleme wohl von slebst gelöst.<br />
Ich muss dazusagen, ich bin blutiger Anfänger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1253319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1253319</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 26 Mar 2007 19:39:29 GMT</pubDate></item></channel></rss>