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

Конструкторы и механизм return - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка в коде http://www.cyberforum.ru/cpp-beginners/thread1138831.html
#include <iostream> #include <vector> using namespace std; void margeSorat(vector<int> &a, size_t start, size_t end) { if (end - start <2) return; if (end - start == 2) {
C++ Шаблонные чистые виртуальные методы Возник вопрос: Есть у нас допустим класс, который мы желаем сделать абстрактным: template <typename T, class = typename std::enable_if<std::is_integral<T>::value>::type> class AbstractIntergal { public: typedef T value_type; value_type value; AbstractIntergal() : value(0) {} AbstractIntergal(value_type src) : value(src) { } http://www.cyberforum.ru/cpp-beginners/thread1138829.html
Конструкция в условии C++
if(a==b==c==5) Такая конструкции будет работать без сбоев? А то компилятор делает предупреждение.
C++ Передача ofstream в функцию
Здравствуйте. Подскажите, пожалуйста, как сделать из участка с 54 по 62 строку отдельную функцию (также с 64 по 73, с 75 по 85, с 87 по 96). Спасибо! using namespace std; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); char word;
C++ Определить номера символов в строках и сравнить их http://www.cyberforum.ru/cpp-beginners/thread1138787.html
Здравствуйте. Помогите, пожалуйста, опыта очень мало. Задача такова: в случаях, когда левая круглая скобка не закрылась в этой же строке, проверить присутствуют ли в исходном тексте не выровненные строки-продолжения, чтобы начаться в позиции символа сразу после левой круглой скобки. Код расположенный в цикле - это мое предположение как должна происходить проверка. char ch; char * pch,...
C++ Високосный год Трабл с кодом, ничего не могу понять. Посмотрите, пожалуйста. Вот, что выдает компилятор Line 7: error: multi-character character constant Line 8: error: multi-character character constant #include <stdio.h> using namespace std; int main() подробнее

Показать сообщение отдельно
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
04.04.2014, 15:05     Конструкторы и механизм return
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
struct M
{
    M() { cout << "1\n"; }
    M(const M&) { cout << "2\n"; }
    M& operator=(const M&) { cout << "3\n"; return *this; }
    ~M() { cout << "4\n"; }
    int a[10000];
};
 
M func()
{
    M x;
    return x; 
}
 
int main()
{
     M y = func();
}
Почему выводится 1 4? MSVS 2012
По логике, должен вызваться конструктор объекта x, этот объект вернет свою копию. Затем будет вызван копирующий конструктор объекта y. Будет вызван деструктор для x, потом для y. Может компилятор так соптимизил...

Добавлено через 19 минут
gcc тоже самое выводит
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru