можно ли тело конструктора вынести за пределы прототипа класса подобно функции?

175
11 марта 2018, 23:34

Имеется довольно большой конструктор и хочется его вынести за пределы определения класса оставив только прототип, подобно функции, но как это правильно сделать? Вот сам конструктор:

truth_table(std::size_t column = min_value) : column(column)
{
    string = pow(bi, column);
    rezult.resize(string, 0);
    tabl.resize(string);
    for (int i = 0; i < tabl.size(); ++i) {
        tabl[i].resize(column, 0);
    }
    std::vector<bool> mask(column, 0);
    mask[0] = 1;
    for (int i = 1; i < mask.size(); ++i) {
        mask[i] = mask [i - 1] + mask [i - 1];
    }
    for (int i = 0; i < tabl.size(); ++i) {
        for (int j = 0; j < tabl[i].size(); ++j) {
            tabl[i][j] = (i & mask[j]);
        }
    }
}
Answer 1

Как и любую функцию-член:

class Type ...
{
   ...
   Type(...);

...
Type::Type(...):base(...)
{
    ....
}

Да, значения по умолчанию оставьте в объявлении конструктора, в определении их использовать не нужно.

READ ALSO
предупреждение: ISO C++ says that these are ambiguous

предупреждение: ISO C++ says that these are ambiguous

Почему предупреждение у такого кода ?

152
Где можно посмотреть исходники STL C++?

Где можно посмотреть исходники STL C++?

Откуда можно посмотреть исходный код STL в C++, перерыл папку компилятора, но кроме хедеров ничего не нашел

130
Убрать отступы внутри QChartView

Убрать отступы внутри QChartView

Добрый деньИмеется виджет QChartView содержащий в себе QChart:

204