<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302211</guid>
        <pubDate>Wed, 01 Jul 2009 08:18:21 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302211</link>
        <description><![CDATA[KILLER: дык...<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=276258&view=findpost&p=2302206'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Potroshitell &#064; <time class="tag-quote__quoted-time" datetime="2009-07-01T12:14:20+04:00">01.07.09, 08:14</time></span><div class='quote '>class Classic : Cd</div></div><br>
Ты юзаешь закрытое наследование, напиши так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">class Classic : public Cd</div><div class="code_line">{</div><div class="code_line">...</div><div class="code_line">};</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>KILLER</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302209</guid>
        <pubDate>Wed, 01 Jul 2009 08:18:04 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302209</link>
        <description><![CDATA[Potroshitell: тьфу блин&#33;&#33;&#33;  :D  ппц я тупанул)) я в class Classic : public Cd, забыл слово public)) теперь всё норм работает) спс вам)]]></description>
        <author>Potroshitell</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302207</guid>
        <pubDate>Wed, 01 Jul 2009 08:14:24 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302207</link>
        <description><![CDATA[Мяут: Преобразовываться ничего и никогда не должно.  :)  <br>
Если у тебя есть несколько наследников от одного базового, то передавай по указателю, а в самой функции либо идентифицируй объект, либо работай только с базовой составляющей, если этого достаточно.<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">class A {</div><div class="code_line">&nbsp;&nbsp; &nbsp;public:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;void foo() const;</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">class B : public A {</div><div class="code_line">&nbsp;&nbsp; &nbsp;public:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;void bar() const;</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">void g(const A* a) {</div><div class="code_line">&nbsp;&nbsp; &nbsp;B* b;</div><div class="code_line">&nbsp;&nbsp; &nbsp;a-&#62;foo();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(b = dynamic_cast&#60;B*&#62;(a)) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;b-&#62;bar();</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>Мяут</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302206</guid>
        <pubDate>Wed, 01 Jul 2009 08:14:20 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302206</link>
        <description><![CDATA[Potroshitell: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// classic.h</div><div class="code_line">#ifndef _CLASSIC_H_</div><div class="code_line">#define _CLASSIC_H_</div><div class="code_line">&nbsp;</div><div class="code_line">#include &quot;cd.h&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">class Classic : Cd</div><div class="code_line">{</div><div class="code_line">private:</div><div class="code_line">&nbsp;&nbsp; &nbsp;char zadacha[40];</div><div class="code_line">public:</div><div class="code_line">&nbsp;&nbsp; &nbsp;Classic(char * s1, char * s2, int n, double x, char * zad);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Classic();</div><div class="code_line">&nbsp;&nbsp; &nbsp;virtual void report() const;</div><div class="code_line">&nbsp;&nbsp; &nbsp;virtual ~Classic();</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">#endif</div></ol></div></div></div></div><br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// реализация классика</div><div class="code_line">#include &#60;iostream&#62;</div><div class="code_line">using namespace std;</div><div class="code_line">#include &#60;cstring&#62;</div><div class="code_line">#include &quot;cd.h&quot;</div><div class="code_line">#include &quot;Classic.h&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">Classic::Classic(char * s1, char * s2, int n, double x, char * zad) : Cd(s1, s2, n, x)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;strncpy(zadacha ,zad, 39);</div><div class="code_line">&nbsp;&nbsp; &nbsp;zadacha[39] = &#39;{text}&#39;;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">Classic::Classic() : Cd()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;strcpy(zadacha, &quot;none&quot;);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">Classic::~Classic() { }</div><div class="code_line">&nbsp;</div><div class="code_line">void Classic::report() const</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;Cd::report();</div><div class="code_line">&nbsp;&nbsp; &nbsp;cout &#60;&#60; &quot; Zadacha = &quot; &#60;&#60; zadacha &#60;&#60; endl;</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
а базовый класс нужен?]]></description>
        <author>Potroshitell</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302201</guid>
        <pubDate>Wed, 01 Jul 2009 08:10:19 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302201</link>
        <description><![CDATA[KILLER: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=276258&view=findpost&p=2302190'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Potroshitell &#064; <time class="tag-quote__quoted-time" datetime="2009-07-01T08:01:52+00:00">01.07.09, 08:01</time></span><div class='quote '>Classic наследует Cd, всмысле Cd базовый класс... поидее он должен преобразовывать Classic в Cd в функции Bravo... но почему то он этого не делает... </div></div><br>
Чего то ты недоговариваешь, кусок кода где эти классы объявлены и используються покажи, и откуда у тебя взялсо &quot;Classic *&quot;]]></description>
        <author>KILLER</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302190</guid>
        <pubDate>Wed, 01 Jul 2009 08:01:52 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302190</link>
        <description><![CDATA[Potroshitell: ок) хорошо, я с этим разобрался ;) <br>
но вот ещё 1 проблема... он думает что обьект класса это указатель, хотя на самом деле это не так<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">...</div><div class="code_line">void Bravo (const Cd &amp; obj);</div><div class="code_line">int main()</div><div class="code_line">{</div><div class="code_line">Classic c2(&quot;Fantasia in C&quot; , &quot;Alfred Brendel&quot; , 2 , 57.17 , &quot;Philips&quot;);</div><div class="code_line">Bravo(c2);</div><div class="code_line">...</div><div class="code_line">}</div><div class="code_line">void Bravo (const Cd &amp; obj)</div><div class="code_line">{</div><div class="code_line">...</div><div class="code_line">}</div></ol></div></div></div></div><br>
<br>
я кажется знаю в чём тут проблема... но как её решить? Classic наследует Cd, всмысле Cd базовый класс... поидее он должен преобразовывать Classic в Cd в функции Bravo... но почему то он этого не делает... может из-за того, что я забыл обьявить конструктор копирования?<br>
вот что пишет: error C2243: приведение типов: преобразование &quot;Classic *&quot; в &quot;const Cd &amp;&quot; существует, но недоступно]]></description>
        <author>Potroshitell</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302188</guid>
        <pubDate>Wed, 01 Jul 2009 07:57:09 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302188</link>
        <description><![CDATA[KILLER: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=276258&view=findpost&p=2302183'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Potroshitell &#064; <time class="tag-quote__quoted-time" datetime="2009-07-01T07:50:47+00:00">01.07.09, 07:50</time></span><div class='quote '>// ну и что компилятору тут не нравится?</div></div><br>
ему все нравиться, он тебя просто предупреждает о том что использование strncpy может привести к проблемам, и даже приводит тебе пару выходов из этой ситуации, как ты поступишь дело твое, можешь отрубить этот ворнинг а можешь заменить свои две строчки:<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=276258&view=findpost&p=2302183'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Potroshitell &#064; <time class="tag-quote__quoted-time" datetime="2009-07-01T07:50:47+00:00">01.07.09, 07:50</time></span><div class='quote '><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">strncpy(label , s2 , 19);</div><div class="code_line">label[19] = &#39;{text}&#39;;</div></ol></div></div></div></div></div></div><br>
одной:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">strncpy_s(label, s2, 20);</div></ol></div></div></div></div>]]></description>
        <author>KILLER</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302185</guid>
        <pubDate>Wed, 01 Jul 2009 07:53:12 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302185</link>
        <description><![CDATA[Urich: <strong class='tag-b'>Potroshitell</strong><br>
#pragma warning(disable:4996)]]></description>
        <author>Urich</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302183</guid>
        <pubDate>Wed, 01 Jul 2009 07:50:47 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302183</link>
        <description><![CDATA[Potroshitell: всё правильно говоришь) я об этом тоже знаю, и просто я этот пример привёл неудачный)) на самом деле у меня вот как там дело то обстоит:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// в заголовочном файле label обьявлен как указатель на char... </div><div class="code_line">label = new char[20];</div><div class="code_line">strncpy(label , s2 , 19);</div><div class="code_line">label[19] = &#39;{text}&#39;;</div><div class="code_line">// ну и что компилятору тут не нравится?</div></ol></div></div></div></div>]]></description>
        <author>Potroshitell</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302181</guid>
        <pubDate>Wed, 01 Jul 2009 07:47:47 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302181</link>
        <description><![CDATA[popsa: используй strcpy_s, strncpy_s&#33;<br>а вообще из текста варнинга все понятно ;)]]></description>
        <author>popsa</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302178</guid>
        <pubDate>Wed, 01 Jul 2009 07:46:21 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302178</link>
        <description><![CDATA[KILLER: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=276258&view=findpost&p=2302169'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Potroshitell &#064; <time class="tag-quote__quoted-time" datetime="2009-07-01T07:37:16+00:00">01.07.09, 07:37</time></span><div class='quote '>warning C4996: &#39;<strong class='tag-b'>strncpy</strong>&#39;: This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.</div></div><br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=276258&view=findpost&p=2302169'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Potroshitell &#064; <time class="tag-quote__quoted-time" datetime="2009-07-01T07:37:16+00:00">01.07.09, 07:37</time></span><div class='quote '>я же вроди бы правильно её использую: <strong class='tag-b'>strcpy(label , &quot;none&quot;)</strong>;</div></div><br>
<br>
У тебя ведь в описании ворнинга все написано&#33;&#33;&#33;<br>
Во первых strcpy не проверяет размер буфера куда копирует, и длину строки откуда копирует, и может произойти переполнение буфера...<br>
Но судя по твоему ворнингу ты юзаешь strncpy она также небезопасна, т.к. не гарантируеться что она добавит в конец строки &#39;&#092;0&#39;, если его небыло в исходной, вот тебе компилятор и говорит, что ты можешь юзать либо безопасную версию этой функции <strong class='tag-b'>strncpy_s</strong>, либо залести в настройки и отрубить этот варнинг командой <strong class='tag-b'>_CRT_SECURE_NO_WARNINGS</strong>, если тебе нужно юзать именно функцию strncpy и ворнинг мозолит глаза...]]></description>
        <author>KILLER</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302169</guid>
        <pubDate>Wed, 01 Jul 2009 07:37:16 +0000</pubDate>
        <title>Strcpy и strncpy не робит...</title>
        <link>https://forum.sources.ru/index.php?showtopic=276258&amp;view=findpost&amp;p=2302169</link>
        <description><![CDATA[Potroshitell: вот что за фигня у меня высвечивается? я в одной программе всё также сделал и  всё пошло, а в этой уже ошибка... пишет: warning C4996: &#39;strncpy&#39;: This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.<br>я же вроди бы правильно её использую: strcpy(label , &quot;none&quot;);<br>вот к примеру..]]></description>
        <author>Potroshitell</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	