Не могу рюхануть explicit
От: Аноним  
Дата: 03.08.03 15:21
Оценка:
Прошу прошения за ламерский вопрос, но кто ни будь может привести пример конструктора, который если он объявлен как explicit, то код, где он вызывается, не компилируется, а если не explicit, то компилируется. Тесть
Class1
{
explicit Class1(some)
{
…..
}
}
….
Class1 ( some ) ;//компиляется при отсутствии у конструктора модификатора explicit, и компилится в ином случае
Re: Не могу рюхануть explicit
От: Alexey Shirshov Россия http://wise-orm.com
Дата: 04.08.03 04:20
Оценка:
Hello, !
You wrote on Sun, 03 Aug 2003 15:21:25 GMT:

> Прошу прошения за ламерский вопрос, но кто ни будь может привести пример

> конструктора, который если он объявлен как explicit, то код, где он
> вызывается, не компилируется, а если не explicit, то компилируется. Тесть
> Class1
> {
> explicit Class1(some)
> {
> …..
> }
> }
> ….
> Class1 ( some ) ;//компиляется при отсутствии у конструктора
> модификатора explicit, и компилится в ином случае

class _a
{
public:
  explicit _a(int)
};
void foo()
{
   _a a = 10; //облом
  _a a(10);   //нормально
}


With best regards, Alex Shirshov.
Posted via RSDN NNTP Server 1.7 beta
Re: Не могу рюхануть explicit
От: Bell Россия  
Дата: 04.08.03 06:33
Оценка:
Здравствуйте, Аноним, Вы писали:


struct test
{
   int n_;
   test(int n) : n_(n) {}
};

void f(test t)
{
}

int main(void)
{
   test t(10);
   f(t);
   f(20);//(*)

   return 0;
}


Если конструктор test объявить как explicit, то строка (*) вызовет ошибку.
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.