C++类的数据成员的初始化相关问题
2013-12-02 14:34
381 查看
可以使用构造函数进行过初始化数据成员,传参数是引用,或者不用传递参数直接进行初始化也可以:值得注意的是实参和形参的使用。
也可以使用类中的成员函数进行初始化相关变量,不需要传递参数,直接定义临时变量,然后对临时变量进行的初始化,赋值给类的数据成员变量,完成对数据成员的初始化工作。
#pragma once
class CSetMineWnd
{
public:
CSetMineWnd(void);
~CSetMineWnd(void);
int SetMineWindow();
//private:
CREATESTRUCT m_RectWindow;
};
int CSetMineWnd::SetMineWindow()
{
int iRectCode = -1;
//获得桌面的坐标,然后设置主窗口的位置
RECT rect = {0};
::GetWindowRect(::GetDesktopWindow(),&rect);
rect.left = rect.right - rect.left;
rect.left /= 2;
rect.top = rect.bottom - rect.top;
rect.top /= 2;
if( rect.left > 200)
{
rect.left -= 200;
}
if( rect.top > 150 )
{
rect.top -= 150;
}
rect.right = rect.left + 400;
rect.bottom = rect.top + 300;
CREATESTRUCT cs_TMain;
cs_TMain.dwExStyle = 0;
cs_TMain.lpszClass = NULL;
cs_TMain.lpszName = NULL;
cs_TMain.style = WS_OVERLAPPEDWINDOW;
#if 1
cs_TMain.x = rect.left;
cs_TMain.y = rect.top;
cs_TMain.cx = 400;
cs_TMain.cy = 300;
#endif
cs_TMain.hwndParent = NULL;
cs_TMain.hMenu = NULL;
m_RectWindow = cs_TMain;//完成初始化工作
return iRectCode;
}
也可以使用类中的成员函数进行初始化相关变量,不需要传递参数,直接定义临时变量,然后对临时变量进行的初始化,赋值给类的数据成员变量,完成对数据成员的初始化工作。
#pragma once
class CSetMineWnd
{
public:
CSetMineWnd(void);
~CSetMineWnd(void);
int SetMineWindow();
//private:
CREATESTRUCT m_RectWindow;
};
int CSetMineWnd::SetMineWindow()
{
int iRectCode = -1;
//获得桌面的坐标,然后设置主窗口的位置
RECT rect = {0};
::GetWindowRect(::GetDesktopWindow(),&rect);
rect.left = rect.right - rect.left;
rect.left /= 2;
rect.top = rect.bottom - rect.top;
rect.top /= 2;
if( rect.left > 200)
{
rect.left -= 200;
}
if( rect.top > 150 )
{
rect.top -= 150;
}
rect.right = rect.left + 400;
rect.bottom = rect.top + 300;
CREATESTRUCT cs_TMain;
cs_TMain.dwExStyle = 0;
cs_TMain.lpszClass = NULL;
cs_TMain.lpszName = NULL;
cs_TMain.style = WS_OVERLAPPEDWINDOW;
#if 1
cs_TMain.x = rect.left;
cs_TMain.y = rect.top;
cs_TMain.cx = 400;
cs_TMain.cy = 300;
#endif
cs_TMain.hwndParent = NULL;
cs_TMain.hMenu = NULL;
m_RectWindow = cs_TMain;//完成初始化工作
return iRectCode;
}
相关文章推荐
- 关于C++类的成员初始化列表的相关问题
- C++类成员和数据成员初始化总结
- c++类中特殊数据类型成员变量的初始化
- C++类成员变量初始化顺序问题
- C++类中的数据成员能否在定义类的时候就初始化?
- EF(Entity Framework)发生错误”正在创建模型,此时不可使用上下文“的解决办法。 正在创建模型,此时不可使用上下文。如果在 OnModelCreating 方法内使用上下文或如果多个线程同时访问同一上下文实例,可能引发此异常。请注意不保证 DbContext 的实例成员和相关类是线程安全的。 临时解决了这个问题,在Context的构造函数中,禁用了自动初始化:
- C++类成员中包含其他类时的初始化问题
- C++类对象数据成员的构造函数初始化顺序
- C++类数据成员的初始化
- c++类几个特殊成员的初始化问题
- 2017-12-14 乱入一道C++类的学习的题(静态数据成员初始化)
- C++类成员和数据成员初始化总结
- C++类成员变量初始化顺序问题
- C++类中的数据成员能否在定义类的时候就初始化?
- 构造函数调用构造函数进行数据成员初始化问题(极易出错)
- C++类中必须用初始化表初始化的数据成员
- C++类的const、static和const static数据成员的初始化
- C++类成员和数据成员初始化总结
- C++类的const、static和const static数据成员的初始化
- C++类中静态数据成员MAP如何初始化