我有几个语法问题,我相信大多数人都可以回答,但这对我来说都很陌生,我通过课程教程,但是它留下了一些未回答的问题。
此代码是类函数的声明行,括号内是要传递的值。正确的吗?
void HwCounter_IVBNHSX_IMC::SetRegisterLocations(int bus, int ha, int chan, int counterNumber)
{
_ha = ha;
_chan = chan;
_counterNumber = counterNumber;
_bus = bus;
}
在这个例子中,最后的附加分号是什么启用的?我想在哪里查看counterNumbers与之相关的内容?
HwCounter_IVBNHSX_IMC::HwCounter_IVBNHSX_IMC(int hwType, const char* pName) : HwCounterBase(pName)
{
_counterNumber = 0;
_currentConfig = 0;
_hwType = hwType;
}
我无法发布整个源代码抱歉,我知道这会让它变得更加困难,但任何帮助都会受到赞赏。
答案 0 :(得分:2)
这段代码是类函数的声明行和里面的 括号是要传递的值。正确的吗?
是的,据了解,该函数必须首先在类中声明。
在这个例子中,末尾的附加
半冒号是什么?
HwCounter_IVBNHSX_IMC::HwCounter_IVBNHSX_IMC(..)
是类HwCounter_IVBNHSX_IMC
的构造函数。
:
之后是mem-initializer列表,如果需要,可以是数据成员和基类的特殊形式的初始化。例如,HwCounterBase(pName)
表示通过使用值HwCounterBase
调用其构造函数来初始化数据成员(或基类)pName
。
答案 1 :(得分:1)
此:
void HwCounter_IVBNHSX_IMC::SetRegisterLocations(int bus, int ha, int chan, int counterNumber)
{
...
}
是函数的定义。 (声明是另一回事,要了解区别,你应该从一个更简单的例子开始。)它的名字是SetRegisterLocations
,它是类HwCounter_IVBNHSX_IMC
的成员,它需要四个参数(所有int
),并且它不返回任何内容(void
)。
此:
HwCounter_IVBNHSX_IMC::HwCounter_IVBNHSX_IMC(int hwType, const char* pName)
{
...
}
类似,但它是构造函数。函数的名称与函数的名称相同,并且没有返回类型(甚至不是void
)。
此: HwCounter_IVBNHSX_IMC :: HwCounter_IVBNHSX_IMC(int hwType,const char * pName):HwCounterBase(pName) { ... }
是相同的,但它有一个初始值设定项列表(只包含一个初始值设定项),用于设置成员变量(HwCounterBase
)的值(或调用构造函数)。 / p>
我希望在哪里查看counterNumbers的相关信息 与?
代码的其余部分。