Форум программистов, компьютерный форум CyberForum.ru

explicit и последствия. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти минимальные элементы столбцов матрицы http://www.cyberforum.ru/cpp-beginners/thread412299.html
пыталась решить задачу, написала такой вот код #include <iostream> #include <iomanip> #include <stdlib.h> #include <cstdio> #include <conio.h> #include <cmath>
C++ календарь помогите с задачей Нужно оформить через операторы циклов, Ввести на экран дату в формате ДД.ММ.ГГГГ, вывести на экран дату дня через неделю http://www.cyberforum.ru/cpp-beginners/thread412290.html
Как обратиться к элементу матрицы через одномерный массив? C++
Сабж. Возможно ли вообще обратиться например к 2 элементу, 2 строки через одномерный массив? типа matr?
Удалить из строки одинаковые слова. C++
Собственно, вот и само задание. Для заданного предложения необходимо найти и удалить одинаковые слова. Нужно на С. Поискал по форуму, но не нашел ничего подходящего. Буду благодарен за помощь
C++ Комментарии по коду http://www.cyberforum.ru/cpp-beginners/thread412279.html
С помощью шаблона добавления элемента в приведенном примере можно добавить только 1 элемент?? Зачем надо ~TElem(){Inf.ClearMem() (знаю, что нужен, но всеже)?? И с итераторами этими.. Это просто тот же цикл, просто в контейнере?? ///template <typename Inform> struct TElem{ /// Inform Inf; /// TElem *Prev, *Next; /// /// ~TElem(){Inf.ClearMem();} ///};
C++ Поменять местами столбцы в квадратной матрице по правилу: первый с последним, второй с предпоследним и т.д. #include <iostream> #include <conio.h> #include <stdlib.h> #include <time.h> #include <iomanip> #include <stdio.h> #include <malloc.h> using namespace std; подробнее

Показать сообщение отдельно
LosAngeles
Заблокирован
20.12.2011, 08:26     explicit и последствия.
12.3.1 Conversion by constructor
1) A constructor declared without the function-specifier explicit specifies a conversion from the types of its
parameters to the type of its class. Such a constructor is called a converting constructor.
C++
1
2
3
4
5
6
7
8
9
10
struct X {
X(int);
X(const char*, int =0);
};
void f(X arg) {
X a = 1; // a = X(1)
X b = "Jessie"; // b = X("Jessie",0)
a = 2; // a = X(2)
f(3); // f(X(3))
}
2) An explicit constructor constructs objects just like non-explicit constructors, but does so only where the
direct-initialization syntax (8.5) or where casts (5.2.9, 5.4) are explicitly used. A default constructor
may be an explicit constructor; such a constructor will be used to perform default-initialization or valueinitialization
C++
1
2
3
4
5
6
7
8
9
10
11
struct Z {
explicit Z();
explicit Z(int);
};
Z a; // OK: default-initialization performed
Z a1 = 1; // error: no implicit conversion
Z a3 = Z(1); // OK: direct initialization syntax used
Z a2(1); // OK: direct initialization syntax used
Z* p = new Z(1); // OK: direct initialization syntax used
Z a4 = (Z)1; // OK: explicit cast used
Z a5 = static_cast<Z>(1); // OK: explicit cast used
3) A non-explicit copy/move constructor (12.8) is a converting constructor. An implicitly-declared copy/move
constructor is not an explicit constructor; it may be called for implicit type conversions.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru