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

Что возвращает cast оператор? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ заменить все комментарии, заданные в круглых скобках, на одиночный пробел. http://www.cyberforum.ru/cpp-beginners/thread536642.html
Привет всем! нужна помощь в написании программы! Я вот не пойму кое-чего.. Нужно найти сначала в массиве строки "(" запомнить позицию этой скобки в массиве, а потом записывать всё в новый массив до символа ")" и уже в новом массиве произвести этот самый пробел? а потом уже всунуть в основной массив строки с заменой? for(i=0;str!='\0';++i) { if(str=='(') i=a;...
C++ Константы препроцесора А есть ли где-то список предустановленых констант препроцесора? Мне нужно узнать тип операционой системы, версию, и поочие. Есть ли где-то весь список? http://www.cyberforum.ru/cpp-beginners/thread536639.html
C++ Есть ли книги по практики по С++
Подскажите книги, что бы попрактиковаться на С++
В чем разница между С и С++ C++
Возник вопрос в чем жи разница между С и С++ кроме того, что в С++ есть классы а в С их нету ?
C++ Бьярне Страуструп Программирование: принципы и практика использования C++ кто читал http://www.cyberforum.ru/cpp-beginners/thread536630.html
Нам посоветовали книгу( в универи посоветовал препод), Бьярне Страуструп Программирование: принципы и практика использования C++, взял книгу, у одного человека, очень тяжело читается. Так вот вопрос ваше стоит ли ее читать, может мне еще раз прочитать Лафоре ОПП в С++ И кто ваше ее читал ? что вы оней можете сказать
C++ Нужен ли символ ; в конце составного оператора? Читаю про if Написано: if (a > 3) { temp = 10; } Но на следующей странице такая вещь: if (SomeValue < 10) { SomeValue = 10; подробнее

Показать сообщение отдельно
cyberguz
6 / 6 / 0
Регистрация: 01.12.2010
Сообщений: 105
02.04.2012, 15:02  [ТС]     Что возвращает cast оператор?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class TestClass
{
public:
    TestClass () {std::cout << "TestClass" << std::endl;}
    ~TestClass () {std::cout << "~TestClass" << std::endl;}
    TestClass (const TestClass& src) {std::cout << "TestClass copy" << std::endl;}
private:
    int i;
};
 
template <class T>
class Wrapper
{
public:
    operator T () const {return value;}
private:
    T value;
};
 
int main ()
{
    Wrapper<TestClass> w;
 
    TestClass tc = w;
 
 
  return 0;
}
Выводит:

TestClass
TestClass copy
~TestClass
~TestClass


Может всё-таки ссылку?

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class TestClass
{
public:
    TestClass () {std::cout << "TestClass" << std::endl;}
    ~TestClass () {std::cout << "~TestClass" << std::endl;}
    TestClass (const TestClass& src) {std::cout << "TestClass copy" << std::endl;}
    TestClass (const TestClass&& src) {std::cout << "TestClass move" << std::endl;}
private:
    int i;
};
 
template <class T>
class Wrapper
{
public:
    operator T () const {return value;}
    T get () {return value;}
private:
    T value;
};
 
int main (int argc, const char* argv[])
{
    Wrapper<TestClass> w;
 
    TestClass tc(w);
 
    TestClass tc2(w.get());
 
 
    return 0;
}
Выводит:

TestClass
TestClass copy
TestClass copy
~TestClass
~TestClass
~TestClass


Почему при вызове get() не создаётся временный объект?
 
Текущее время: 02:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru