我是一名正在尝试学习 C++ 的 JAVA 开发人员,但我真的不知道标准函数声明的最佳实践是什么。
在课堂里:
class Clazz
{
public:
void Fun1()
{
//do something
}
}
或者在外面:
class Clazz
{
public:
void Fun1();
}
Clazz::Fun1(){
// Do something
}
我有一种感觉,第二个可能不太可读......
C++ 是面向对象的,因为它支持软件开发的面向对象范例。
然而,与 Java 不同的是,C++ 并不强制您将函数定义分组到类中:声明函数的标准 C++ 方法是仅声明一个函数,而不包含任何类。
相反,如果您正在谈论方法声明/定义,那么标准方法是将声明放入包含文件中(通常命名为.h
or .hpp
)和单独的实现文件中的定义(通常命名为.cpp
or .cxx
)。我同意这确实有点烦人并且需要一些重复,但这就是语言的设计方式(主要概念是 C++ 编译一次完成一个单元:您需要正在编译的单元的 .cpp 和只是 .h编译代码使用的所有单元;换句话说,类的包含文件必须包含能够生成使用该类的代码所需的所有信息)。有很多关于此的细节,对编译速度、执行速度、二进制大小和二进制兼容性有不同的影响。
对于快速实验来说,任何事情都有效......但对于更大的项目,分离是实际需要的(即使在公共 .h 中保留一些实现细节可能是有意义的)。
注意:即使您了解 Java,C++ 也是一种完全不同的语言……并且它是一种不能仅通过实验来学习的语言。原因是它是一种相当复杂的语言,有很多不对称性和明显不合逻辑的选择,最重要的是,当你犯错误时,没有像 Java 那样的“运行时错误天使”来拯救你……而是有“未定义的行为守护进程”。
学习 C++ 的唯一合理方法是阅读......无论你多么聪明,你都无法猜测委员会的决定(实际上聪明有时甚至是一个问题,因为正确的答案是不合逻辑的,并且是历史的结果)遗产。)
只需选择一个好书除了实验之外,一两本并从头到尾地阅读它们。单独进行实验不会让您达到像样的 C++ 熟练程度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)