【发布时间】:2017-09-13 09:44:02
【问题描述】:
来自Java背景,我已经习惯了通过引用对象及其方法来创建一个对象并在主类中使用它的方法,例如:
object.objectMethod();
拥有具有相同名称方法的不同类不是问题,但现在我正在 Arduino 中做一个几乎是 C++ 的项目。 tutorial on using classes in Arduino 建议在每个方法之前在 .cpp 文件中使用类名和双冒号。一些谷歌搜索让我相信这被称为命名空间。进一步搜索 C++ 中的命名空间会产生各种使用命名空间的选项,但它们都不像 Arduino 教程中的那样,这让我感到困惑。
我的问题:命名空间的适当用途是什么?在链接教程中使用它是否是一种好习惯?
【问题讨论】:
-
可能是命名空间,可能是函数所属的类的名称。查阅 C++ 教科书可能是个好主意。
-
Java 和 C++ 本质上是不同的,尽管它们在语法上很相似。不要试图在 C++ 中模仿 Java 编程风格,这会导致糟糕的结果。
-
提醒:C++ 允许独立函数。并非所有内容都必须在一个类中。
-
事实上,快速浏览一下教程会发现“函数名前的第一个是 Morse::。这表示该函数是 Morse 类的一部分。”
-
您永远不必创建命名空间;它们是一个方便的功能。如果您想做 OOP(您不必这样做),那么您需要使用类。如果你使用类,并且类 A 和 B 都有一个名为 f() 的函数,那么这两个函数的全称是 A::f() 和 B::f()。正如我所说,阅读一本 C++ 教科书 - 没有一本,你将无法学习使用该语言。
标签: c++ namespaces