【发布时间】:2014-12-12 17:08:18
【问题描述】:
我正在使用 C++ How to Program 8th Edition,其中一部分代码说,
Employee::Employee( const string &first, const string &last, const Date &dateOfBirth, const DateOfBirth, const Date &dateOfHire)
: firstName(first), lastName(last), birthDate(dateOfBirth), hireDate(dateOfHire)
{
cout <<"Employee object constructor: " << firstName << ' '<< lastName <<endl;
}
我很困惑。这个 Employee 类是通过复制还是通过引用来初始化 2 个 Date 类对象?这本书说它是由一个复制构造函数说的,但是我在每个名称前都看到了一个 & 符号。另外,如果您在函数参数名称之前声明 const,则该参数不会更改,但传入的原始参数不一定是常量,对吗?
另外,你可以对非常量类使用常量函数,对吧?声明函数常量的意义在于,该函数不能编辑在其所在类中声明的任何变量?
这是main()中的实现
int main()
{
Date birth(7, 24, 1949);
Date hire (3, 12, 1988);
Employee manager( "Bob", "Blue", birth, hire);
}
birth 和租用是 Date 类的对象
编辑2:这是头文件中定义的函数的屏幕截图。再次感谢。 http://tinypic.com/r/qznf6g/8 http://tinypic.com/r/2qdr3tz/8 非常感谢!!!! 编辑3:我想我想通了。所以它最初是使用引用来初始化 Date 对象,但随后它还使用复制构造函数将 dateOfBirth 分配给第 14 行中的birthDate 对吧?
【问题讨论】:
-
这取决于成员的声明(在类体中),这里没有显示。
-
这些类成员变量是如何声明的?作为参考?
-
主要功能不是我们回答您的问题需要看到的。我们需要查看
Employee类。