声明不带const与带const的变量-测试问题

时间:2018-11-14 21:43:36

标签: c++

仅供参考:这只是一个自以为是的问题,我正在寻找其他人的看法。

这是我的计算机科学班考试之一的answer。大家知道这是我们的第一个测试,并且该类中使用的语言明确是C ++。如果您单击上图的链接,您将看到一个问题,告诉我语法错误,并且我要编写可接受的代码以使其起作用。我对这个问题的回答是“ double x;”。显然,这是不正确的,我应该“假设final意味着我需要在其中放置const”。现在,的确,我了解我的老师的逻辑,因为const确实可以工作,但是问题中没有任何内容说明常量或使变量成为常量。无论如何,两个答案都可以接受。

我写这篇文章的目的是发现一种感觉,“我只是错了吗?”,或者你们是否同意这显然是正确的?

顺便说一句,如果您想知道的话,这不是在说明意味着常量的部分,或者在整个测试中都没有提到常量一词。这仅是某种直觉。

2 个答案:

答案 0 :(得分:2)

“ final”标记虚拟成员函数,使得它们不能在子类中被覆盖,但是对于变量或数据成员而言,这是不合法的。因此,我看到的主要语法错误是final与变量一起的非法使用;

该程序存在语法错误,您只能猜测该程序的编写者的真正意图。而且-就像是在猜测-我会说您可以争论的每个有效猜测都应该接受。

答案 1 :(得分:-2)

您学到了一些东西。您的教授对RAII和const正确性一无所知。

您现在知道,在该类中前进,所有未修改的变量(即使可能在重构之后可能需要修改)也必须是const。始终放置所有const,并在需要时删除const。

您还知道,对于此类,永远不要有没有初始化的声明。

遵循这些原则,您将在期末考试中领先于全班。这些是好的原则。也许这位教授在他们的申请中有些繁重。但是,嘿,你不会改变他/她的。