解释课程

时间:2016-01-19 21:52:48

标签: c++ syntax

我有几个语法问题,我相信大多数人都可以回答,但这对我来说都很陌生,我通过课程教程,但是它留下了一些未回答的问题。

此代码是类函数的声明行,括号内是要传递的值。正确的吗?

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;
}

我无法发布整个源代码抱歉,我知道这会让它变得更加困难,但任何帮助都会受到赞赏。

2 个答案:

答案 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的相关信息   与?

代码的其余部分。