<?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[Sind lange Initialisierungslisten böse?]]></title><description><![CDATA[<p>Sind lange Initialisierungslisten böse?</p>
<p>Hier ein Beispiel:</p>
<pre><code class="language-cpp">DeferredRendering::DeferredRendering(ID3D10Device* pd3dDevice, ID3D10Effect *pEffect, ID3D10Effect *pCubeMapEffect) : 
m_pPickBuffer(0),
m_pVertexLayoutScreenQuad(0),
m_pVertexLayoutHUD(0),
m_pHUDTechnique(0),
m_pVertexBufferFullScreenQuad(0),
m_pTexture(0),
m_pNoiseTexture(0),
m_pRandom(0),
m_pCullCWRS(0),
m_pDrawMirrorDSS(0),
m_pDrawReflectionDSS(0),
m_pDrawReflectionBS(0),
m_pDepthStencilTexture(0),
m_pDepthStencilView(0),
m_pEffect(0),
m_pShadowMapEffect(0),
m_pGeometryPassTechnique(0),
m_pLightPassTechnique(0),
m_pLightPassKugelTechnique(0),
m_pTexRender10(0),
m_pTexRenderRV10(0),
m_pTexRenderRTV10(0),
m_pTexBrightPass10(0),
m_pTexBrightPassRV10(0),
m_pTexBrightPassRTV10(0),
m_pMSRT10(0),				
m_pMSRTV10(0),
g_pDSV(0),
g_pDepthStencil(0),
m_pMSDS10(0),
m_pMSDSV10(0),
m_pTransparentObjectMapSRV(0),
m_pTransparentObjectTexture(0),
m_pTransparentObjectMapRTV(0),
m_pEnableAdditiveBlendingBS(0),
m_pDisableDepthTestSS(0),
m_pTransparentPass(0),
m_pTransparentTex(0),
m_pGhostFigureColor(0),
m_pGhostMode(0),
m_vSourceDimensions(0),
m_ptxShadowMap(0),
g_pmViewCM(0),
m_pAmbientOcclusionSRV(0),
m_pAmbientOcclusionRTV(0),
m_pAmbientOcclusionTexture(0),
m_pSSAOTechnique(0),
m_pBlurXTechnique(0),
m_pBlurYTechnique(0),
m_pBlurXSRV(0),
m_pBlurXRTV(0),
m_pBlurXTexture(0), 
m_pBlurYSRV(0),
m_pBlurYRTV(0),
m_pBlurYTexture(0)
{
	// set g-buffer to 0
	for (int i = 0; i &lt; NUM_GBUFFER_TEXTURES; i++)
	{
		m_pMapVariable[i]=0;
		m_pRenderTargetView[i] = 0;
		m_pRenderTargetTexture[i] = 0;
		m_pRenderTargetShaderResView[i] = 0;
	}
</code></pre>
<p>Sollte man lange Initialisierungslisten vermeiden und diese n den Konstruktor verlagern?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273619/sind-lange-initialisierungslisten-böse</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 21:44:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273619.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 09 Sep 2010 21:50:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sind lange Initialisierungslisten böse? on Thu, 09 Sep 2010 21:50:03 GMT]]></title><description><![CDATA[<p>Sind lange Initialisierungslisten böse?</p>
<p>Hier ein Beispiel:</p>
<pre><code class="language-cpp">DeferredRendering::DeferredRendering(ID3D10Device* pd3dDevice, ID3D10Effect *pEffect, ID3D10Effect *pCubeMapEffect) : 
m_pPickBuffer(0),
m_pVertexLayoutScreenQuad(0),
m_pVertexLayoutHUD(0),
m_pHUDTechnique(0),
m_pVertexBufferFullScreenQuad(0),
m_pTexture(0),
m_pNoiseTexture(0),
m_pRandom(0),
m_pCullCWRS(0),
m_pDrawMirrorDSS(0),
m_pDrawReflectionDSS(0),
m_pDrawReflectionBS(0),
m_pDepthStencilTexture(0),
m_pDepthStencilView(0),
m_pEffect(0),
m_pShadowMapEffect(0),
m_pGeometryPassTechnique(0),
m_pLightPassTechnique(0),
m_pLightPassKugelTechnique(0),
m_pTexRender10(0),
m_pTexRenderRV10(0),
m_pTexRenderRTV10(0),
m_pTexBrightPass10(0),
m_pTexBrightPassRV10(0),
m_pTexBrightPassRTV10(0),
m_pMSRT10(0),				
m_pMSRTV10(0),
g_pDSV(0),
g_pDepthStencil(0),
m_pMSDS10(0),
m_pMSDSV10(0),
m_pTransparentObjectMapSRV(0),
m_pTransparentObjectTexture(0),
m_pTransparentObjectMapRTV(0),
m_pEnableAdditiveBlendingBS(0),
m_pDisableDepthTestSS(0),
m_pTransparentPass(0),
m_pTransparentTex(0),
m_pGhostFigureColor(0),
m_pGhostMode(0),
m_vSourceDimensions(0),
m_ptxShadowMap(0),
g_pmViewCM(0),
m_pAmbientOcclusionSRV(0),
m_pAmbientOcclusionRTV(0),
m_pAmbientOcclusionTexture(0),
m_pSSAOTechnique(0),
m_pBlurXTechnique(0),
m_pBlurYTechnique(0),
m_pBlurXSRV(0),
m_pBlurXRTV(0),
m_pBlurXTexture(0), 
m_pBlurYSRV(0),
m_pBlurYRTV(0),
m_pBlurYTexture(0)
{
	// set g-buffer to 0
	for (int i = 0; i &lt; NUM_GBUFFER_TEXTURES; i++)
	{
		m_pMapVariable[i]=0;
		m_pRenderTargetView[i] = 0;
		m_pRenderTargetTexture[i] = 0;
		m_pRenderTargetShaderResView[i] = 0;
	}
</code></pre>
<p>Sollte man lange Initialisierungslisten vermeiden und diese n den Konstruktor verlagern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950557</guid><dc:creator><![CDATA[MuhkuhReloaded]]></dc:creator><pubDate>Thu, 09 Sep 2010 21:50:03 GMT</pubDate></item><item><title><![CDATA[Reply to Sind lange Initialisierungslisten böse? on Thu, 09 Sep 2010 21:57:12 GMT]]></title><description><![CDATA[<p>MuhkuhReloaded schrieb:</p>
<blockquote>
<p>Sollte man lange Initialisierungslisten vermeiden</p>
</blockquote>
<p>Wenn sie derart ausarten wie in deinem Beispiel, ja.</p>
<p>MuhkuhReloaded schrieb:</p>
<blockquote>
<p>und diese n den Konstruktor verlagern?</p>
</blockquote>
<p>Nein nein nein! Das löst doch das Problem hinten und vorne nicht. Das Problem ist nämlich, dass du zu viele Membervariablen hast. Das schreit doch nach Objektorientierung. Fasse zusammengehörige Attribute zu eigenen Klassen zusammen, dann verkürzt sich automatisch die Initialisierungsliste.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950559</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 09 Sep 2010 21:57:12 GMT</pubDate></item><item><title><![CDATA[Reply to Sind lange Initialisierungslisten böse? on Thu, 09 Sep 2010 21:57:57 GMT]]></title><description><![CDATA[<p>Per se böse nicht, nein.</p>
<p>Was du dich hier eher fragen solltest, ob die Klasse so gross sein muss oder du das das ganze nicht besser aufteilen solltest.</p>
<p>Du hast da ja einige Effekte implementiert, so, wie ich das sehe und die könntest du doch sehr schön auslagern. Dann kannst du nämlich z.B den Blur benutzen ohne auch gleich das ganze Zeugs für AmbientOcclusion mitschleppen. Da würde sich das ganze dann schon sehr verkleinern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950560</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 09 Sep 2010 21:57:57 GMT</pubDate></item><item><title><![CDATA[Reply to Sind lange Initialisierungslisten böse? on Fri, 10 Sep 2010 07:05:35 GMT]]></title><description><![CDATA[<p>das ist so, als ob Du fragst, ob das Tachometer des Autos böse ist, wenn es in geschlossenen Ortschaften über 100km/h anzeigt.</p>
<p>Wie drakon und Nexus bereits geantwortet haben ist nicht die lange Initialisierungsliste böse, sondern die Größe Deiner Klasse - sowas nennt man ein <a href="http://de.wikipedia.org/wiki/God_object" rel="nofollow">Gott Objekt</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950629</guid><dc:creator><![CDATA[Werner logoff]]></dc:creator><pubDate>Fri, 10 Sep 2010 07:05:35 GMT</pubDate></item><item><title><![CDATA[Reply to Sind lange Initialisierungslisten böse? on Fri, 10 Sep 2010 08:27:04 GMT]]></title><description><![CDATA[<p>Ich erinnere mich das im Buch &quot;Code Complete&quot; eine Empfehlung für 3-7 Membervariablen pro Klasse gemacht wird. Das hört sich für viele als sehr wenig an, da die Membervariablen aber durchaus auch wieder Klassen sein können, ist diese Richtlinie nicht unbedingt so abwegig (Auch wenn ich mich nicht komplett auf die 3-7 festbeißen würde).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950655</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 10 Sep 2010 08:27:04 GMT</pubDate></item><item><title><![CDATA[Reply to Sind lange Initialisierungslisten böse? on Fri, 10 Sep 2010 08:34:29 GMT]]></title><description><![CDATA[<p>3-7 kommt bei mir gut hin. Ich fange aber nicht unnötig an zu kapseln, wenn es mal 10 werden sollten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1950661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1950661</guid><dc:creator><![CDATA[Walli]]></dc:creator><pubDate>Fri, 10 Sep 2010 08:34:29 GMT</pubDate></item></channel></rss>