计算机科学:使用函数分解

学习计算机科学的概念,示例问题和解释

大学导师应用商店 大学导师安卓商店

例子问题

例子问题1:使用功能分解

给定一个类Thing和代码:

东西一,东西二;

下面的函数调用相当于什么?

thingTwo = thingOne;

可能的答案:

运算符= (thingTwo thingOne);

thingOne使用thingTwo的复制构造函数

ostream& Thing::operator=(const Thing& rhs);

thingTwo。operator = (thingOne);

以上都不是

正确答案:

thingTwo。operator = (thingOne);

解释

我们得到的是东西一和东西二已经被创造出来了,这是一个至关重要的信息。我们看一下每个选项

运算符= (thingTwo thingOne);

这一行代码没有任何意义,而且语法错误。

ostream& Thing::operator=(const Thing& rhs);

这行代码说要从“Thing”类中访问“operator=”方法并将其放到ostream中,这与将thingOne分配给thingTwo无关。

当我们遇到复制构造函数的选择时,我们必须记住,只有当一个对象使用to来创建另一个对象时,才会使用复制构造函数,例如,我们有一个给定的类Foo:

Foo Foo;

Foo foobar = Foo;

在本例中,我们使用foo来创建foobar。

唯一可行的选择是:

thingTwo.operator = (thingOne);

这行代码意味着thingOne对象被赋值给了thingTwo。

大学导师的学习工具