C++箴言:理解Terminology术语

C++箴言:理解Terminology术语,第1张

C++箴言:理解Terminology术语,第2张

这是所有程序员都应该知道的C++的小词汇。以下几项非常重要,足以让我们就它们的含义达成一致。

声明告诉编译器一些东西的名字和类型,但是它省略了一些细节。这些都是陈述:

外部整数x;//对象声明

STD::size _ t numDigits(int number);//函数声明

类小部件;//类声明

template //模板声明
类GraphNode//(有关
//使用“typename”的信息,请参见第42项)

注意,即使是内置类型,我也更愿意把整数看成“对象”。有些人把“对象”这个名字保留给用户定义的类型,但我不是其中之一。然后注意numDigits函数的返回类型是std::size_t,也就是命名空间std中的size_t类型。这个名称空间是C++标准库中所有东西实际驻留的地方。但是,因为C标准库(严格来说,来自C89)也可以在C++中使用,所以从C继承的符号(比如size_t)可能存在于全局范围内,std内部,或者两者都存在,这取决于# included是哪个头文件。在这本书里,我假设C++头文件是# included,这也是我用std::size_t而不是size_t的原因,在写标准库组件的时候,我一般不再提std了。这取决于你对size_t、vector和cout之类的东西在std中的认识。在示例代码中,我总是包含std,因为真正的代码没有它是无法编译的。

顺便说一下,size_t只是C++在计算一些东西(例如,基于char*的字符串中的字符数,STL容器中的元素数等)时使用的一些无符号typedef。).它也是vector、deque和string的operator[]函数持有的类型,这是在第3项中定义我们自己的operator[]函数时要遵循的约定。

每个函数的声明表明了它的签名,也就是它的参数和返回类型。函数的签名与其类型相同。在numDigits的情况下,签名是std::size_t (int),即“函数保存一个int,返回一个std::size_t”。“签名”的官方C++定义不包括函数的返回类型,但在本书中,将返回类型视为签名的一部分更有用。

定义为编译器提供了在声明时被省略的细节。对于一个对象,定义是编译器为该对象留出内存的地方。对于函数或函数模板,定义提供了代码本体。对于类或类模板,定义列出了类或模板的成员:

int x;//对象定义

STD::size _ t numDigits(int number)//函数定义。
{
//(此函数返回
STD::size _ t digits sofar = 1;//其参数中的位数
//的位数。)
while ((number /= 10)!= 0)++ digits sofar;
return digits sofar;
}

类Widget {
//类定义
public:
Widget();
~ Widget();
...
};

模板//模板定义
类graph node {
public:
graph node();
~ graph node();
...
};

初始化是设置对象的第一个值的过程。对于用户定义类型的对象,初始化通过构造函数完成任务。默认构造函数是无需任何参数即可调用的构造函数。这种构造函数可以没有参数,也可以每个参数都有一个默认值:

A类{
public:
A();//默认构造函数
};

class B {
public:
explicit B(int x = 0,bool B = true);//默认构造函数;见下文
};//获取有关“显式”的信息

C类{
public:
explicit C(int x);//不是默认构造函数
};

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++箴言:理解Terminology术语

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情