Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Компилятор не знает что выбрать 
:(
    Опции темы
BashOrgRu
Дата 18.4.2010, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 7.4.2009

Репутация: нет
Всего: нет



Здравствуйте, просвятите пожалуйста в следующем вопросе, есть код:
Код

#include <iostream>
#include <cstring>
using namespace std;

class strCount
   {
   private:
      int count;
      char* str;
      friend class String;

      strCount(char* s)
         {
         int length = strlen(s);
         str = new char[length+1];
         strcpy(str, s);
         count=1;
         }

      ~strCount()
         { delete[] str; }
   };

class String
   {
   private:
      strCount* psc;
   public:
      String()
         { psc = new strCount("NULL"); }

      String(char* s)
         { psc = new strCount(s); }

      String(String& S)
         {     
         psc = S.psc;
         (psc->count)++;
         }

      ~String()
         {
         if(psc->count==1)
            delete psc;
         else 
            (psc->count)--; 
         }

      void display()
         {
         cout << psc->str;
         cout << " (addr=" << psc << ")";
         }

      void operator = (String& S)
         {
         if(psc->count==1)
            delete psc;
         else 
            (psc->count)--; 
         psc = S.psc; 
         (psc->count)++;
         }
   };

int main()
   {
   String s3 = "When the fox preaches, look to your geese.";
   cout << "\ns3="; s3.display();

   String s1;  
   s1 = s3; 
   cout << "\ns1="; s1.display(); 

   String s2(s3); 
   cout << "\ns2="; s2.display();
   cout << endl;
   return 0;
   }

Майкрософтофский компилятор в Visual Studio ведёт себя нормально, а MinGW на строчке String s3 = "When the fox preaches, look to your geese."; запарывается, не зная что выбрать - конструктор с одним аргументом или конструктор копирования. Что ему не так? Насколько мне известно разработчики MinGW очень серьёзно следят за стандартом C++, значит получается код неверный? Или все правильно и это всего-лишь глюк компилятора?
PM MAIL   Вверх
mes
Дата 18.4.2010, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(BashOrgRu @  18.4.2010,  11:00 Найти цитируемый пост)
String(char* s)

Код

String (const char *)


P.S.
Цитата(BashOrgRu @  18.4.2010,  11:00 Найти цитируемый пост)
(String& S)

Код

(const String& S) 



--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.2294 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.