C++入门类定义(初学者)

C++ primer class definition (beginner)

本文关键字:初学者 定义 C++      更新时间:2023-10-16

在引入头文件之前,书中有这样一句话C++入门(第 2.6.3 节,第 76 页第五版(:

当我们在函数之外定义一个类时,在任何给定的源文件中可能只有一个该类的定义。此外,如果我们在几个不同的文件中使用一个类,则每个文件中的类定义必须相同。

我解释最后一句话的方式可能有问题。我的理解是,如果我想在同一项目的多个文件中使用一个类而不使用标头,则必须在每个文件中定义该类。每个文件中的类都必须具有相同的名称和内容,否则编译器将抱怨。

但是,我尝试在两个不同的源文件中定义两个名称相同但内容不同的类。我什至使用了这些类,但它完美地工作。

从形式上讲,对同一类有两个不同的定义不需要诊断(即,没有警告或错误消息(。但是行为是"未定义的",也就是说,语言定义不会告诉你代码应该做什么。因此,代码可以做任何事情,包括正常工作。当然,直到您正在为最重要的客户演示您的程序,当它崩溃时。

它没有完美地工作。 它可能已经奏效,但使定义不同是未定义的行为。