У меня есть объект, который создается в файле .h, который должен быть инициализирован в конструкторе. Этот объект передается номер COM-порта, который равен 5 в нашем текущем приложении. По этой причине я создал const int в файле .h.Инициализировать const int и объект с этим const int в том же конструкторе
Изменить: Я добавил более полный пример
class ClassB
{
public:
ClassB(int comPort);
private:
int m_comPort;
};
ClassB::ClassB(int comPort) :
m_comPort(comPort)
{
}
class ClassA
{
public:
ClassA();
private:
const int comPort;
ClassB B;
};
ClassA::ClassA() :
comPort(5),
B(comPort)
{
}
int main()
{
ClassA A;
return 0;
}
Поскольку объект инициализируется перед тем ComPort полностью инициализирован, значение для ComPort мусор.
Что было бы правильным способом обойти это? Я могу думать о следующем:
- инициализацию константный Int в заголовочном файле
- Создание и инициализацию объекта в теле конструктора
- использовать #define
Если 'comPort' определен в классе до' B', то это не будет мусор. Здесь недостаточно информации, чтобы ответить на ваш вопрос или воспроизвести проблему. – wally
Я буду редактировать в более полном примере, извинения! – YouKnowNothingJohn
Добавлен более сложный пример кода. – YouKnowNothingJohn