<b>解析C++/CLI之头文件、内联函数与数组</b>[VC/C++编程]
本文“<b>解析C++/CLI之头文件、内联函数与数组</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
头文件与函数声明
在传统C++的计划与实现中,你可对需建模的每种范例举行定义,并把定义放在各自的头文件中;而头文件中,普通会包含范例名、成员名、及相关小型成员函数的内联定义.
与各个单独编译的源文件是通过头文件来同享信息差别,在C++/CLI中,这些信息是通历程序集来同享的.就拿常举例的Point类来说,它单独编译,并生成了一个名为"Point.dll"的程序集.任何需求某种范例定义的利用程序,都必须编译和链接带有此范例的程序集,这同时也要求此DLL情势的程序集合有完好的范例定义;一样,在范例中全部声明的函数也必须被定义,不然,链接器将会报告错误.
举例来说,你可以在Point类中声明成员函数GetHashCode,并在类外定义它,但必须在同一源文件中(见例1).但是,若把此成员函数的定义放在一个单独的源文件中却不行,即便源文件是作为同一程序集的输入、与Point.cpp同时编译也不行,因为编译这样一个文件需求拜候程序集Point.dll,而这恰好是此编译历程要生成的程序集.(此处假定在函数定义时未利用inline,这将在背面谈论.)
例1:
public ref class Point
{
...
virtual int GetHashCode() override;
};
int Point::GetHashCode() override
{
return X ^ (Y << 1);
}
在编译及链接任何程序集时,都隐含不利用头文件,且程序集所依靠的全部其他程序集都必须是已编译及链接过的.
内联函数
在Point中,每个成员函数的定义都有意写成了inline(内联),除了增添定义的机动性外,还可把代码保持在同一源文件中,使成员函数不能在范例定义本身之外的另一文件中被定义.
以上是“<b>解析C++/CLI之头文件、内联函数与数组</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |