我有一个应该在构造函数中初始化的.h文件中创建的对象。该对象通过当前应用程序中5的COM端口号。为此,我在.h文件中创建了一个const int。在同一构造函数中初始化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之前被初始化对象被完全初始化,为相称的值是垃圾。
避免这种情况的正确方法是什么?我能想到以下几点:
- 初始化的const int的头文件
- 创建和初始化对象的构造
- 的身体使用的#define
如果'comPort'是在'B'之前的类中定义的,那么它不会是垃圾。没有足够的信息来回答您的问题或重现问题。 – wally
我会编一个更完整的例子,道歉! – YouKnowNothingJohn
添加了更详细的代码示例。 – YouKnowNothingJohn