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

Placement new делигирование конструкторов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Неправильно читает файл http://www.cyberforum.ru/cpp-beginners/thread1648835.html
Вот код программы (суть в тесте методов С++ по работе с бинарными файлами): #include "stdafx.h" #include <iostream> #include <fstream> using namespace std; int main() {
C++ Как подсчитать максимальное количество верных и неверных ответов? оригинал вопроса: The program should display, separately, the longest streak, i.e. (a) the maximum number of correct answers in a row (b) and the maximum number of wrong answers in a row #include<iostream> #include<cstdlib> // For random numbers and operators. #include<ctime> // For time counting. using namespace std; void exersices(int a, int& right, int& wrong,int& wstreak,int&... http://www.cyberforum.ru/cpp-beginners/thread1648822.html
C++ Построить алгоритм выкладывания костей домино так, чтобы в конце цепочки "на руках" осталось максимум очков.
Ребят, помогите решить задачу пожалуйста :) Условие: Данные N косточек домино по правилам игры выкладываются в прямую цепочку, начиная с косточки, выбранной произвольно, в оба конца до тех пор, пока это возможно. Построить алгоритм, позволяющий определить такой вариант выкладывания заданных косточек, при котором к моменту, когда цепочка не может быть продолжена, "на руках" останется максимальное...
Почему не работает агрегатная инициализация? C++
Всем привет ! Вот есть структура: struct Size{ float width, height; Size(); Size(const float width,const float height); }; Друг работает в mvs 2013 и написал такой код и у него работает:
C++ Объяснить условие цикла while http://www.cyberforum.ru/cpp-beginners/thread1648762.html
<#include <fstream> using namespace std; #define FILENAME_1 "file_1.txt" #define FILENAME_2 "file_2.txt" int main() { ifstream file_1; ofstream file_2;
C++ Адрес строки в текстовом файле Здравствуйте Господа и Дамы. У меня такой вопрос. Есть текстовый файл. Скачиваю его в оперативку. В каждой строчки есть указание на отсылку к какой-то другой строчке. Можно это сделать пронумеровав все строчки и потом путём итерации переходить на эту строчку. Вопрос. А можно ли узнать адрес в ОП этой строчки, вставить в зарезервированные места в скаченном файле эти адреса, чтобы переходить... подробнее

Показать сообщение отдельно
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11835 / 6814 / 769
Регистрация: 27.09.2012
Сообщений: 16,889
Записей в блоге: 2
Завершенные тесты: 1
27.01.2016, 14:21     Placement new делигирование конструкторов
Для non-POD типов не подойдет точно:
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
33
34
35
36
37
38
39
40
41
42
43
44
45
//Title of this code
//g++  4.9.2
 
#include <iostream>
using namespace std;
 
 
struct Test
{
    Test(int x=0) : x_(x) { std::cout << "ctor" << std::endl; }
    Test& operator=(const Test& src ) { x_ = src.x_; std::cout << "assign" << std::endl; return *this; }
    Test(const Test& src ) :x_(src.x_) {std::cout << "cctor" << std::endl;}
    ~Test(){std::cout << "dctor" << std::endl;}
    int x_ ;
};
 
 
 
std::ostream& operator<<(std::ostream& stream, const Test& obj)
{
    return stream << obj.x_ ;
}
 
 
class Foo
{
 
public:
    int _x;
    Test _y;
    Foo()
    {
        cout << "Foo()" << endl;
        new (this) Foo( 17, 19 );
    }
    Foo( const int x, const int y ) : _x(x), _y(y)
    {
        cout << "Foo( const int x, const int y )" << endl;
    }
};
int main()
{
    Foo a;
    cout << "Foo: "<< a._x << " " <<  a._y << endl;
}
http://rextester.com/XRXX30905

но я слышал о вынесе void init(...) метода, который вызывается в каждом конструкторе
Угу, только теперь же можно делегировать работу другому конструктору:
C++
1
Foo():Foo( 17, 19 )
так что init велосипедить не нужно
 
Текущее время: 17:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru