Funkcje składowe na liście inicjalizacyjnej

0

Czytam sobie aktualnie o konstruktorach i chciałem zobaczyć inicjalizowanie za pomocą funkcji na liście inicjalizacyjnej.

Napisałem coś takiego:

#include<iostream>
#include<cstdio>
using namespace std;

class obiekt
{
    int x;
    char znak;

    public:

        void pomnoz()
            {
                x*=2;
            }

        obiekt():  x(10),
                     znak('c'),
                     pomnoz(){}

        void przedstaw()
            {
                cout << this->x << " " << this->znak << endl;
            }

};

int main()
{
obiekt nowy;
nowy.przedstaw();

getchar();
return 0;}

Niestety dostaję komunikat:

error: class 'obiekt' does not have any field named 'pomnoz'

W czym może być problem?

1

Inicjalizuje się pola, jak chcesz wywołać metodę zrób to w ciele konstruktora.

Możesz natomiast inicjalizować pole za pomocą metody:

struct X
{
    int x;

    X() : x(dummy()) {}

    int dummy() { return 5; }
};
0

OK, dzięki wielkie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0