关于类的问题(:和::的使用)

子愚 2010-05-12 02:26:12
HardwareContext::HardwareContext()
: m_InputDeviceContext(), m_OutputDeviceContext()
{
InitializeCriticalSection(&m_Lock);
InitializeCriticalSection(&m_I2CLock);
m_Initialized=FALSE;
}

::就不多说了!请大侠们详细说说:的使用方式.
...全文
107 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwgddx 2010-05-12
  • 打赏
  • 举报
回复
把所有的变量都当对象看, param1().相当于调用了类的构造函数进行初始化.

基本数据类型比如int a(10);就相当于给a初始化为10.

个人理解,有不对的地方请指出来.
cdsnpeter 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hugh512 的回复:]

引用 2 楼 xyzhaopeng 的回复:

:后面的是成员初始化列表。用于初始化类中的成员。
::是作用域解析符号。

(1)构造函数初始化成员变量。比如类C的构造函数 C::C():param1(),param2(){}。
(2)指定基类。比如:class Derive : public Base {...}
(3)指定访问权限时,一般在定义结构或者类中使用。比如:publi……
[/Quote]
很全面哈,呵呵。
子愚 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cnxuyong 的回复:]

()是给他的值
[/Quote]
这是咋给值的??
子愚 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xyzhaopeng 的回复:]

:后面的是成员初始化列表。用于初始化类中的成员。
::是作用域解析符号。
[/Quote]
(1)构造函数初始化成员变量。比如类C的构造函数 C::C():param1(),param2(){}。
(2)指定基类。比如:class Derive : public Base {...}
(3)指定访问权限时,一般在定义结构或者类中使用。比如:public: ... protected:... private:...
(2)三目运算符中有所使用。比如:a>b?1:2;
YaNick2022 2010-05-12
  • 打赏
  • 举报
回复
()是给他的值
子愚 2010-05-12
  • 打赏
  • 举报
回复
我再仔细看看代码!好像那问题比较愚蠢
子愚 2010-05-12
  • 打赏
  • 举报
回复
cpp里确实有这么说过!我有个疑问:为什么成员变量要这样m_InputDeviceContext()加()
cdsnpeter 2010-05-12
  • 打赏
  • 举报
回复
关于必须使用成员初始化列表的场合:
1, 当类含有const成员的时候
2, 当类含有引用成员的时候
3, 调用基类的带参数的构造函数,这是因为基类总是要先于子类构造,而初始化列表是在类构造之前的一个动作。
4, 调用一个带参数的成员对象的构造函数。这个原因是因为,成员变量也是先于对象构造函数的。
cdsnpeter 2010-05-12
  • 打赏
  • 举报
回复
:后面的是成员初始化列表。用于初始化类中的成员。
::是作用域解析符号。
jyh_baoding 2010-05-12
  • 打赏
  • 举报
回复
继承派生

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧