问题标签 [accelerated-c++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
54 浏览

c++ - Cin 坚持输入并错误读取

我正在从 Accelerated C++ 编写一个 C++ 程序,该程序使用上述结构来定义单个学生。目标是存储和计算多个学生的成绩。该程序应该以姓名、两个考试成绩和一些未知数量的家庭作业成绩的形式从标准输入中获取输入。这些值都被加载到一个结构中,然后该结构被添加到 Student_info 的向量中。执行此操作的代码如下。

但是输入读取不正确。的输入

给出:

最后一个学生不适合结构,因此读取失败并且 while 循环结束,并且 Jack 永远不会被添加到向量中。

0 投票
2 回答
267 浏览

c++ - “查找”的递归版本和非递归版本有什么区别?

Accelerated C++ Programming一书中,第 205 页,有以下两个实现find

我有兴趣了解以下两种实现在性能方面有什么区别(编译后是否实际上相同?)。

非递归的

递归的

通过使用Kerrek建议的编译器资源管理器,我得到了以下信息

非递归https://godbolt.org/g/waKUF2

递归https://godbolt.org/g/VKNnYZ

编译后好像一模一样?(如果我正确使用该工具..对不起,我对 C++ 很陌生)

0 投票
2 回答
796 浏览

c++ - 为什么我可以在更小的范围内重新定义 const?

我现在正在通过 Accelerated C++ 工作,并且我遇到了对我的范围和代码块的根本缺乏理解。

第 1 章末尾有一个练习,希望你决定这段代码是否会运行:

我确信它不会,但它确实如此。我的业余编程经验是,在一个块中声明的变量可用于其中包含的其他块,但不能用于块外的其他块。

这必须至少是对的,因为删除 s 的第二个声明将输出两次“字符串”,给我的印象是第二个块中声明的 s 也出现在第三个块中。

我还尝试完全删除第三个块的大括号,导致我最初预期的编译错误。但这与声明一个已经存在于第三个块范围内的常量有什么不同呢?如果在较小的范围内没有第二个声明,则常量的声明是否仅延续到较小的范围?

直到此时,我再次浏览了本书中的所有内容,看看我是否遗漏了什么,但我找不到任何关于变量和 const 声明如何受花括号影响的信息。

0 投票
0 回答
44 浏览

c++ - 将程序与未定义的符号链接时遇到问题

我是 C++ 的新学习者,当我在推荐的书 Accelerated C++: Here's Directory Structure 中重复代码示例时遇到了麻烦:

主文件

等级.cpp

等级.h

学生信息.h

学生信息.cpp

中位数.cpp

中位数.h

我得到一个链接器错误,我无法修复:

主文件夹的 CMakeList.txt:

对于 lib 文件夹:

我正在使用 macos/Clion/Gcc 组合,我做错了什么吗?我对 C++ 完全陌生,任何帮助将不胜感激。

0 投票
2 回答
120 浏览

c++ - 加速 C++ 练习 2.4

我已经关注 Accelerated C++ 几个星期了,但我一直坚持练习 2.4 一段时间,最后我想我找到了,但在尝试给它不同的维度后,我发现它并没有真正起作用并且我真的不明白为什么

代码最初打印一个框架消息,在这个特定的练习中,我应该将代码一次打印一个字符的空白更改为一次写入所有木板

这是代码:

编辑有输入和输出

更新:我重写了代码,输出是星号的无限循环这里是新代码

提前谢谢大家的帮助

0 投票
1 回答
35 浏览

c++ - 声明朋友模板函数

这个问题部分基于Accelerated C++ [1] 中的练习 15-4 和那本书中的代码。我想将该myclone函数声明为类的朋友,以便它可以访问私有成员。该myclone函数被声明为模板,但我不想让所有可能的函数访问私有成员,只允许那些与该类关联的函数。

其他一些文件:

另一个假设myclone函数可以调用对象的clone方法A,但我想限制对A* myclone(const A*). 有没有办法做到这一点,还是我想多了,这种情况在实践中永远不会发生?我应该使用模板专业化吗?

[1] Koenig, A., & Moo, BE (2000)。通过示例加速 C++ 实用编程。皮尔逊。

0 投票
0 回答
66 浏览

c++ - C++ 的编译错误:“架构 x86_64 的未定义符号”

我尝试单独编译“grade.cpp”,但终端返回“Undefined symbols for architecture x86_64”;如何解决这个问题,以便我可以单独编译“grade.cpp”?

终端看起来像这样(我的名字是星号的):

“grade.cpp”是:

“grade.h”是:

“median.cpp”是:

“中位数.h”是:

“Student_info.cpp”是

“Student_info.h”是: