繁体   English   中英

C ++入门类定义(入门)

[英]C++ primer class definition (beginner)

C ++入门书籍中的这句话在介绍头文件之前(第2.6.3 p。76第五版):

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

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

但是,我试图在两个不同的源文件中定义两个具有相同名称但内容不同的类。 我什至使用了这些类,但是效果很好。

正式地,具有相同类别的两个不同定义不需要诊断(即,没有警告或错误消息)。 但是行为是“未定义的”,也就是说,语言定义不会告诉您代码应该做什么。 结果,代码可以做任何事情,包括正常工作。 当然,直到您向最重要的客户演示程序时,程序才会崩溃。

它不能完美地工作 它可能已经起作用,但是使定义有所不同是“未定义行为”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM