Передача аргументов конструктору класса в объявлении другого класса - PullRequest
5 голосов
/ 24 июля 2011

У меня есть что-то вроде этого:

#include <iostream>
using namespace std;

class FirstClass
{
    public:
        FirstClass(int _vx) : vx(_vx) {}
        int x () {return vx;}
    private:
        int vx;
};

Довольно очевидно, что я должен написать:

int main ()
{
    FirstClass Object1(666);
    cout << Object1.x();
    return 0;
}

И все в порядке.Но проблема в том, что когда я хочу получить это в другом классе:

#include <iostream>
using namespace std;

class FirstClass
{
    public:
        FirstClass(int _vx) : vx(_vx) {}
        int x () {return vx;}
    private:
        int vx;
};

class SecondClass
{
    public:
        FirstClass Member1(666);
};

int main ()
{
    SecondClass Object2;
    cout << Object2.Member1.x();
    return 0;
}

, я даже не могу его скомпилировать.Итак, мой вопрос: как я могу передать аргументы конструктору FirstClass в объявлении SecondClass?

Заранее спасибо.

1 Ответ

9 голосов
/ 24 июля 2011

Вы должны передать значение инициализации в FirstClass в конструкторе SecondClass, например так:

class SecondClass:
   {
   public:
      SecondClass() : Member1(666) {}
      Firstclass Member1;
   };
...