Как должен выглядеть конструктор для класса с другим классом в качестве поля в C++? Имеется класс (пусть A), одним из полей которого является объект другого класса (пусть B). Каким образом должен выглядеть конструктор класса A, чтобы в нем учитывался класс B?
Для класса A, который имеет поле объекта класса B, конструктор должен передавать необходимые параметры для создания объекта класса B.
Пример:
#include <iostream> class B { public: B(int value) : m_value(value) {} int getValue() { return m_value; } private: int m_value; }; class A { public: A(int valueA, int valueB) : m_b(valueB) { m_valueA = valueA; } int getValueA() { return m_valueA; } int getValueB() { return m_b.getValue(); } private: int m_valueA; B m_b; }; int main() { A objectA(10, 20); std::cout << "Value A: " << objectA.getValueA() << std::endl; std::cout << "Value B: " << objectA.getValueB() << std::endl; return 0; }
В данном примере класс A содержит объект класса B в качестве поля. В конструкторе класса A, после инициализации m_valueA, происходит инициализация объекта m_b класса B с помощью переданного значения valueB.
Для класса A, который имеет поле объекта класса B, конструктор должен передавать необходимые параметры для создания объекта класса B.
Пример:
#include <iostream>class B {
public:
B(int value) : m_value(value) {}
int getValue() { return m_value; }
private:
int m_value;
};
class A {
public:
A(int valueA, int valueB) : m_b(valueB) {
m_valueA = valueA;
}
int getValueA() { return m_valueA; }
int getValueB() { return m_b.getValue(); }
private:
int m_valueA;
B m_b;
};
int main() {
A objectA(10, 20);
std::cout << "Value A: " << objectA.getValueA() << std::endl;
std::cout << "Value B: " << objectA.getValueB() << std::endl;
return 0;
}
В данном примере класс A содержит объект класса B в качестве поля. В конструкторе класса A, после инициализации m_valueA, происходит инициализация объекта m_b класса B с помощью переданного значения valueB.