Vai*_*hek 6 c++ java constructor abstraction
我已经使用C++和Java几年了.我似乎无法理解的一件事是,为什么我们需要为类的构造函数提供名称?例如,如果我必须FOO在C++/Java中定义一个类,我将被迫提供FOO构造函数名称.但是,由于构造函数从未被显式调用,编译器的意义在于强迫我为它提供一个名称.
抽象范式决定了,我们隐藏了程序员不必要的细节.这就是原因,构造函数没有返回类型,因为它已经很好地定义了构造函数必须返回的内容.本着同样的精神,为什么我们不能只给所有类的构造函数赋一个通用名称 - 例如任何有意义的东西,比如initialize()或者只是什么都没有,只是参数( [arg [,arg]] )
我希望,我能够表达自己.如果有人有任何确定的答案,请告诉我.
来自 C++ 标准 (12.1)(强调我的):
\n\n\n构造函数没有名字。使用特殊的声明符语法来声明或定义构造函数。语法使用:
\n\n
\n- 可选的 decl-specifier-seq,其中每个 decl-specifier 是函数说明符或 constexpr,
\n- 构造函数\xe2\x80\x99s 类名,以及
\n- 参数列表
\n
在 C++ 中,您不提供名称,而是编写由语言创建者决定声明构造函数的特殊语法。
\n