<?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[Kopier-Konstruktor aufrufen?!]]></title><description><![CDATA[<p>Hallo liebe C++ Gemeinde. Ich bin ein Neuling in der Programmierung und auch neu im Forum.<br />
Ich arbeitet zur Zeit mit dem IVT (Integrated Vision Toolkit). Und mache mit den Übungen auch Fortschritte. Bloß bei einem Problem komme ich nicht weiter. Ich muss eine Funktion aufrufen und bekomme es einfach nicht hin. Nach Recherche handelt es sich dabei um einen Kopierkonstruktor:</p>
<pre><code class="language-cli">class COpenGLCapture : public CVideoCaptureInterface
{
public:
	// constructors
	();
	COpenGLCapture(const CCalibration &amp;calibration);
	COpenGLCapture(const CStereoCalibration &amp;stereoCalibration);
</code></pre>
<p>(den dritten Konstruktor möchte ich aufrufen)</p>
<p>Wie rufe ich dies nun in meine main;-Funktion auf?? Ich habe schon alles mögliche Probiert und ich komme nicht weiter:</p>
<pre><code class="language-cli">int main()
{
	COpenGLCapture capture(stereoCalibration);
}
</code></pre>
<p>...klappt einfach nicht! 'Ich wäre wirklich sehr dankbar, wenn mir jemand helfen kann.</p>
<p>PS: Sollte der Topic nicht im richtigen Forum stehen, so möge man mir Verzeihen, ich dachte das passt hier am besten rein.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286168/kopier-konstruktor-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 00:55:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286168.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 May 2011 18:50:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Wed, 04 May 2011 18:50:32 GMT]]></title><description><![CDATA[<p>Hallo liebe C++ Gemeinde. Ich bin ein Neuling in der Programmierung und auch neu im Forum.<br />
Ich arbeitet zur Zeit mit dem IVT (Integrated Vision Toolkit). Und mache mit den Übungen auch Fortschritte. Bloß bei einem Problem komme ich nicht weiter. Ich muss eine Funktion aufrufen und bekomme es einfach nicht hin. Nach Recherche handelt es sich dabei um einen Kopierkonstruktor:</p>
<pre><code class="language-cli">class COpenGLCapture : public CVideoCaptureInterface
{
public:
	// constructors
	();
	COpenGLCapture(const CCalibration &amp;calibration);
	COpenGLCapture(const CStereoCalibration &amp;stereoCalibration);
</code></pre>
<p>(den dritten Konstruktor möchte ich aufrufen)</p>
<p>Wie rufe ich dies nun in meine main;-Funktion auf?? Ich habe schon alles mögliche Probiert und ich komme nicht weiter:</p>
<pre><code class="language-cli">int main()
{
	COpenGLCapture capture(stereoCalibration);
}
</code></pre>
<p>...klappt einfach nicht! 'Ich wäre wirklich sehr dankbar, wenn mir jemand helfen kann.</p>
<p>PS: Sollte der Topic nicht im richtigen Forum stehen, so möge man mir Verzeihen, ich dachte das passt hier am besten rein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058621</guid><dc:creator><![CDATA[StephanKr]]></dc:creator><pubDate>Wed, 04 May 2011 18:50:32 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Wed, 04 May 2011 18:55:37 GMT]]></title><description><![CDATA[<p>Wie äußert sich denn dieses &quot;klappt nicht&quot;? Und wo hast du das Objekt erzeugt, von dem du dort eine &quot;Kopie&quot; anlegen willst?</p>
<p>btw, rein technisch betrachtet sind das keine Kopier-Konstruktoren - ein Kopier-Konstruktor erzeugt eine Kopie von einem Objekt der selben Klasse, also <code>COpenGLCapture(const COpenGLCapture&amp;);</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058626</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 04 May 2011 18:55:37 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Wed, 04 May 2011 19:08:05 GMT]]></title><description><![CDATA[<p>Ich habe &quot;capture&quot; garnicht erzeugt. Vorher war das Programm (welches auch lief) ein bisschen anders:</p>
<pre><code class="language-cli">class COpenCVCapture : public CVideoCaptureInterface
{
public:
	// constructor
	COpenCVCapture(int nIndex, const char *pFilename = 0);

	// destructor
	~COpenCVCapture();
</code></pre>
<p>(...)<br />
und</p>
<pre><code class="language-cli">int main()
{
    COpenGLCapture capture(0,0);
}
</code></pre>
<p>...vorher hat es funktioniert doch ich benötige die calibrierung von OpenGL und nicht von OpenCV. Die Stuktur von den beiden ist sehr ähnlich:<br />
[url]<br />
<a href="http://ivt.sourceforge.net/doxygen/_open_g_l_capture_8cpp-source.html%5B/url%5D" rel="nofollow">http://ivt.sourceforge.net/doxygen/_open_g_l_capture_8cpp-source.html[/url]</a><br />
und<br />
<a href="http://ivt.sourceforge.net/doxygen/_open_c_v_capture_8cpp-source.html" rel="nofollow">http://ivt.sourceforge.net/doxygen/_open_c_v_capture_8cpp-source.html</a></p>
<p>Ich weiß, dass man eigendlich wesentlich fitter im Programmieren sein sollte, um solche Operationen durchzuführen. Ich dachte ich könnte das einfach analog vom originalen aufrufen.</p>
<p><em>Geht nicht</em> bedeutet das VS2010 immer wieder div Fehler ausspuckt wie<br />
&quot;Verweise müssen initialisiert werden&quot; oder<br />
&quot;Instanz von abstrakter Klasse kann nicht erstellt werden&quot; usw....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058637</guid><dc:creator><![CDATA[StephanKr]]></dc:creator><pubDate>Wed, 04 May 2011 19:08:05 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Wed, 04 May 2011 19:17:46 GMT]]></title><description><![CDATA[<p>Wie gesagt, du mußt erst ein CCalibration-Objekt (bzw. eine davon abgeleitete Klasse) anlegen - diese kannst du dann deinem Konstruktor übergeben. Um weitere Fehler zu diagnostizieren, solltest du den fehlerhaften Code und die <strong>exakte</strong> Meldung des Compilers hier posten.<br />
(meine Kristallkugel ist atm zur Reparatur :D)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058643</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 04 May 2011 19:17:46 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Wed, 04 May 2011 21:14:58 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>(meine Kristallkugel ist atm zur Reparatur :D)</p>
</blockquote>
<p>Der Spruch kommt in jedem Thread mit so einer exakten Fehlerbeschreibung aber ich find trotzdem <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058702</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Wed, 04 May 2011 21:14:58 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Wed, 04 May 2011 23:10:34 GMT]]></title><description><![CDATA[<p>Wenn das in jedem Thread kommt, wer kann denn dann endlich Mal Deine Kristallkugel reparieren? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Service-Urwald Deutschland oder wie war das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058741</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 04 May 2011 23:10:34 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Wed, 04 May 2011 23:13:08 GMT]]></title><description><![CDATA[<p>Das sind zwei sog. &quot;conversion constructor&quot;.<br />
Und um sie aufzurufen musst du erstmal ein passendes Objekt haben, also ein <code>CStereoCalibration</code> oder <code>CCalibration</code> Objekt.<br />
Also z.B. so:</p>
<pre><code class="language-cpp">void foo()
{
    CStereoCalibration calib/*(eventuell, noetige, parameter)*/;
    COpenGLCapture cap(calib);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2058742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058742</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 04 May 2011 23:13:08 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Thu, 05 May 2011 09:06:10 GMT]]></title><description><![CDATA[<p>Hallo Hustbaerleider funktioniert der Code nicht:</p>
<p>*c:\1a\ivt\examples\calibrationapp\src\organizer.cpp(76): error C2079: 'calib' verwendet undefiniertes class 'CStereoCalibration'</p>
<p>1&gt;c:\1a\ivt\examples\calibrationapp\src\organizer.cpp(77): error C2259: 'COpenGLCapture': Instanz von abstrakter Klasse kann nicht erstellt werden<br />
1&gt; aufgrund folgender Member:<br />
1&gt; &quot;void COpenGLCapture::DrawScene(void)&quot;: ist abstrakt<br />
1&gt; c:\1a\ivt\src\videocapture\openglcapture.h(97): Siehe Deklaration von 'COpenGLCapture::DrawScene'</p>
<p>1&gt;c:\1a\ivt\examples\calibrationapp\src\organizer.cpp(77): error C2664: 'COpenGLCapture::COpenGLCapture(const CCalibration &amp;)': Konvertierung des Parameters 1 von 'int' in 'const CCalibration &amp;' nicht möglich<br />
1&gt; Ursache: Konvertierung von 'int' in 'const CCalibration' nicht möglich<br />
1&gt; Quelle oder Ziel hat einen unvollständigen Typ*</p>
<p>Ich habe auch conversion constructor gegoogelt, aber leider kein Beispiel mit Aufruf gefunden, welches meinem Problem entspricht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058844</guid><dc:creator><![CDATA[StephanKr]]></dc:creator><pubDate>Thu, 05 May 2011 09:06:10 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Thu, 05 May 2011 09:21:22 GMT]]></title><description><![CDATA[<p>Nochmal ausführlich:</p>
<p><strong>Header:</strong></p>
<pre><code class="language-cli">class COpenCVCapture : public CVideoCaptureInterface
{
public:
	// constructor
	COpenCVCapture(int nIndex, const char *pFilename = 0);
	// destructor
	~COpenCVCapture();
	// public methods
	bool OpenCamera();
	void CloseCamera();
	bool CaptureImage(CByteImage **ppImages);
	int GetWidth();
	int GetHeight();
	CByteImage::ImageType GetType();
	int GetNumberOfCameras() { return 2; }

private:
	// private attributes
	CvCapture *m_pCapture;
	_IplImage *m_pIplImage;
	const int m_nIndex;
	std::string m_sFilename;
};

#endif /* _OPEN_CV_CAPTURE_H_ */
</code></pre>
<p><strong>Konstruktor:</strong></p>
<pre><code class="language-cpp">COpenGLCapture::COpenGLCapture(const CStereoCalibration &amp;stereoCalibration)
{
	m_nCameras = 2;

	width = stereoCalibration.width;
	height = stereoCalibration.height;
	type = CByteImage::eRGB24;

	m_pOpenGLVisualizer = new COpenGLVisualizer();
	m_pStereoCalibration = new CStereoCalibration();
	m_pCalibration = 0;

	m_pStereoCalibration-&gt;Set(stereoCalibration);
}
</code></pre>
<p>wie rufe ich jetzt das Ding auf?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058848</guid><dc:creator><![CDATA[StephanKr]]></dc:creator><pubDate>Thu, 05 May 2011 09:21:22 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Thu, 05 May 2011 09:45:37 GMT]]></title><description><![CDATA[<p>Was ist denn an den Fehlermeldungen so schwer zu verstehen? Du hast ein Include vergessen und die Funktion DrawScene nicht implementiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058857</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 05 May 2011 09:45:37 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Thu, 05 May 2011 10:03:20 GMT]]></title><description><![CDATA[<p>ich glaube nicht, dasss das problem ist. OPenGL ist konsisten und richtig installiert.<br />
Ich wie rufe ich die Funktion auf?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058861</guid><dc:creator><![CDATA[StephanKr]]></dc:creator><pubDate>Thu, 05 May 2011 10:03:20 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Thu, 05 May 2011 10:21:31 GMT]]></title><description><![CDATA[<p>StephanKr schrieb:</p>
<blockquote>
<p>ich glaube nicht, dasss das problem ist. OPenGL ist konsisten und richtig installiert.</p>
</blockquote>
<p>Wer hat das bezweifelt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058877</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 05 May 2011 10:21:31 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Thu, 05 May 2011 10:28:42 GMT]]></title><description><![CDATA[<p>... weil alles included und implementiert ist. Mann muss nur eine Headerdatei includen. in dieser stehen dann weiter und so weiter. Ich möchte doch nur wissen wie ihr diese Funktion aufrufen würdet???!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058881</guid><dc:creator><![CDATA[StephanKr]]></dc:creator><pubDate>Thu, 05 May 2011 10:28:42 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Thu, 05 May 2011 10:36:32 GMT]]></title><description><![CDATA[<p>Tja, bei der Beratungsresistenz ist wohl Hopfen und Malz verloren ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058885</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 05 May 2011 10:36:32 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Thu, 05 May 2011 10:42:25 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Tja, bei der Beratungsresistenz ist wohl Hopfen und Malz verloren ...</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>StephanKr schrieb:</p>
<blockquote>
<p>... weil alles included und implementiert ist.</p>
</blockquote>
<p>Was hat Inkludation mit Implementation zu tun?</p>
<p>Allgemein: Ich glaube, du kapierst nicht genau, was dein Problem ist. Du denkt es liegt am Copy-CTor und willst ein Beispiel. Bitteschön:</p>
<pre><code class="language-cpp">struct foo
{
  foo(){};
  foo(const foo&amp; obj){*this = obj};
};
foo bar1;
foo bar2(bar1);
</code></pre>
<p>Und was hat dir das gebracht? hustbaer hat eine korrekte und auf deine Klasse spezifische Lösung angegeben. Wenn das nicht funzt, machst du definitiv selber etwas falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058888</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Thu, 05 May 2011 10:42:25 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Thu, 05 May 2011 10:47:47 GMT]]></title><description><![CDATA[<p>1.Satzzeichen sind keine Rudeltiere.<br />
2.COpenGLCapture ist eine abstrakte Klasse. Abstrakte Klassen kann man nicht instanzieren, d.h. den CTor nicht aufrufen. Lösung: Mach das es keine abstrake Klasse mehr ist - implementiere die Funktion<br />
void COpenGLCapture::DrawScene(void)<br />
Das hat manni66 dir auch schon gesagt.<br />
3.COpenGLCapture braucht zur Konstruktion ein Objekt vom typ CCalibration oder CStereoCalibration. Die erste Zeile der Fehlemeldung sagt, dass diese Klassen nicht bekannt sind. Also hast du wohl ein inlcude vergessen. Auch das hat manni66 gesagt.<br />
4.Werf mal die Vorstellung weg das du da irgendwie wüsstest was du tust. Du hast nämlich nicht wirklich Ahnung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058889</guid><dc:creator><![CDATA[KTM]]></dc:creator><pubDate>Thu, 05 May 2011 10:47:47 GMT</pubDate></item><item><title><![CDATA[Reply to Kopier-Konstruktor aufrufen?! on Thu, 05 May 2011 16:33:39 GMT]]></title><description><![CDATA[<p>StephanKr schrieb:</p>
<blockquote>
<p><em>c:\1a\ivt\examples\calibrationapp\src\organizer.cpp(76): error C2079: 'calib' verwendet undefiniertes class 'CStereoCalibration'</em></p>
</blockquote>
<p>Dazu müsstest du den richtigen Header includen (der OpenGLCapture-Header hat nur eine Forward-Deklaration).</p>
<blockquote>
<p>*1&gt;c:\1a\ivt\examples\calibrationapp\src\organizer.cpp(77): error C2259: 'COpenGLCapture': Instanz von abstrakter Klasse kann nicht erstellt werden<br />
1&gt; aufgrund folgender Member:<br />
1&gt; &quot;void COpenGLCapture::DrawScene(void)&quot;: ist abstrakt<br />
1&gt; c:\1a\ivt\src\videocapture\openglcapture.h(97): Siehe Deklaration von 'COpenGLCapture::DrawScene'<br />
*</p>
</blockquote>
<p>Die Klasse ist abstrakt, also mußt du eine eigene Klasse von ihr ableiten und dort die DrawScene()-Methode mit Inhalt füllen.<br />
(die COpenCVCapture-Klasse ist dagegen nicht abstrakt, dehalb kannst du sie auch problemloser verwenden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059117</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 05 May 2011 16:33:39 GMT</pubDate></item></channel></rss>