3 Star 21 Fork 1

cpp_tutorial/question

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Unlicense

C++ 答疑室

答疑室群号: 682132891.

以下内容已弃用, 请 点此查看.


👉简单目录

本仓库用于 C++ 的答疑,答疑范围以大学会教授的内容为主。如果你有这方面的问题,欢迎提问。

本答疑工作同时也是我的一种实践调查,因而由于调查课题限制,主要面向东南大学学生;如你非本校学生,请在提问时注明。


提问方式

  • ️⚠ 提问需要注册登录本 Gitee 网站的账号,同时建议使用电脑进行提问
  • ️⚠ 提问的标题请采用陈述句概括问题。
  • ⚠ 如果提问解决,请将提问网页右上角的状态改为已完成,或评论说明已完成。

在本网页最上面偏右中位置,找到橙色的【克隆/下载】按钮,从它往左找到【+ Issue】并点击。

你也可以通过点击此处快速跳转


答疑相关信息

如果你只是想提问,这些信息不了解也可,只在提问被拒绝或想搜索已有问题时再来查询。

答疑时间

全年无休,一天内任何我有空闲的时段。

尽量做到及时回答,但可能由于邮箱接收消息延迟或有事在忙而延误。

答疑范围

👉以下是我能回答你的
  • 大学 C++ 课程的教学内容。
  • C++11~C++23 的部分基础内容(以《Effective Modern C++》和《A Tour of C++, 3rd Edition》涉及内容为主)。
  • 现代 C++ 的使用理念。
👉以下是我会回答你,但不情愿的
  • 没有格式化的代码。(点击代码,在 VSCode 或 VS 中按 【Shift】+【Alt/option】+【F】)。
  • 大量代码,但又没有描述其中的逻辑。
  • 当存在报错信息时,以截图形式给出报错信息,或不给出详细的报错信息。
  • 不会并且不愿意学习断点调试的提问者的问题。
  • 模糊的问题。
  • 态度不好的提问者的问题。
  • C 风格 C++ 代码。
👉以下是我可能能回答你的
  • C 语言代码。(C 和 C++ 真的是两回事,我完全不会 C!)
  • 构建工具 CMake 的使用,不含工具链的配置。
  • 包管理器 conan 的使用,不含工具链的配置。
  • 部分软件的使用、安装。(C++ 环境配置则点此参考
👉以下是我不能回答你的
  • 往年考试试卷在哪能找到。
  • 仅有代码图片而没有代码文本的问题。
  • C++ 并发相关内容。
  • 国际化(i18n)相关内容。
  • 过于复杂的模板元编程。
  • 语言律师类问题,即对标准的咬文嚼字。
  • 第三方库的使用。
  • 大多软件的使用、安装。(C++ 环境配置则点此参考
  • 除 CMake 外的构建工具的使用。(如 Makefile 等)
  • 除 Conan 外的包管理器的使用。(如 vcpkg 等)
  • 工具链的配置。
  • 与运行环境强相关的问题。

答疑原则

“‘你看不懂我这‘优雅’的代码,对吧?这说明我很聪明。’——这样做不是好的教学。”—— Bjarne Stroustrup

  • 能提供代码辅助回答的地方,尽量给出代码或启发提问者给出代码。
  • 答疑的过程应该是启发式的,是要辅助提问者自己弄明白这个问题。
  • 先解决问题,再做详细解释。
  • 回答时尽量详细但保持简单,不聪明、不自作聪明、不在回答中用复杂的回答显得自己很聪明。
  • 如果有更简单的方法,教给提问者。

答疑记录

为了让未来的提问者能方便地查询已有答疑,我将对答疑进行标签标记。

答疑类型

在答疑整个过程中调整,类型的划分主要参考 C++核心准则 和电类 C++ 教学大纲。

注意,设置标签时,一定会设置大标签,但不一定会设置有对应的子标签,这是因为子标签并不涵盖大标签的所有情况。如一个问题可能仅仅设置“对象”标签,而不是设置“对象”+“对象.生命周期”标签。

👉查看答疑类型标签(拼音排序)

⚠ 这里的解释超链接暂时使用我在教务处答疑室时的“每周一题”,其中有很多现在看来很糟糕的东西,待更新整合。

  • 表达式和语句
  • 标准库
    • 标准库.容器和算法
    • 标准库.时间
    • 标准库.随机数
  • 编程思维
    • 编程思维.不要重复代码
    • 编程思维.抽象
    • 编程思维.单一职责
    • 编程思维.类型安全
    • 编程思维.设计模式
    • 编程思维.资源安全
  • C 风格 CPP:这里的 C 风格不是诋毁 C 语言,C 风格 C++ 是一种杂糅了 C 和 C++ 的恶心东西,先学它只会让学生讨厌 C++。
    • C 风格 CPP.手动 new 与 delete
    • C 风格 CPP.数组
    • C 风格 CPP.指针运算
    • C 风格 CPP.字符串
  • C 语言问题
  • const
  • 错误处理
    • 错误处理.异常
  • 函数和函数对象
  • 面向对象编程
  • 类型与对象:这里的对象不是面向对象编程中所指的“对象”,一个非正式的解释见此
    • 类型与对象.初始化
    • 类型与对象.生命周期
  • 类与结构体
  • 模板
  • 输入输出
    • 输入输出.二进制
    • 输入输出.格式化
    • 输入输出.文件
  • 术语和惯用法
  • 算法与数据结构:这里的算法是一般意义上的算法
    • 算法与数据结构.递归
    • 算法与数据结构.排序
    • 算法与数据结构.链表
  • 项目管理:也包含多文件编译、包含头文件相关内容
    • 项目管理.包管理
    • 项目管理.构建工具
  • 引用
  • 指针
  • 资源管理
  • 作用域声明方式

答疑质量评级

在答疑解决后,我将对该答疑的质量进行评级,评级依据主要参考如何更好地询问 C++ 代码问题

    • 答疑时无论答疑者还是提问者,交流时都有明确的逻辑。
    • 提问者在提问时而非交流过程中即给出了详细的信息。
    • 答疑产生了简单而直接的解决方案。
    • 答疑过程让答疑者很开心。
    • 提问者代码没有格式化。
    • 提问者代码过多,而没有描述代码间的关系。
    • 当存在报错信息时,以截图形式给出报错信息,或不给出详细的报错信息。
    • 提问者不愿意在解决问题的过程中学习新鲜事物。
    • 提问者或答疑者回复时间跨度一天以上。
    • 出现不恰当的言辞。

答疑室的目的

“社会实践是检验真理的唯一标准。” —— 1963 年《五评苏共中央的公开信》[违规信息]主席加注

当前目标是通过答疑实践,

  • 了解东南大学学生在学习 C++ 过程中的痛点。
  • 让学生能抛弃“C++ = C + 面向对象程序设计”“设计模式只能用于面向对象程序设计”等错误认识,对“是什么让 C++成为 C++”这一问题有一定的正确认识。
  • 积累 C++ 的传授经验,总结一些简单的教学示例(不是语法的堆砌,而是“为什么要有这个特性”的生动解释)。

我是谁?

  • 一个还没入门 C++ 的 C++ 爱好者。
  • 一个热爱学习和传授 C++ 的人。
  • 一个乐于学习并正尝试运用辩证唯物论和唯物辩证法的[违规信息]主义者。
  • 2022 上半年(2021-2022 学年春季学期,周一线上、周二线下)和 2022 下半年(2022-2023 学年秋季学期,周四线上、周一线下),教务处安排的 C++ 答疑室中的答疑工作者。
  • 2022 下半年考试延期后的寒假期间(由于考试延期,教务处安排答疑继续进行),教务处安排的 C++ 答疑室中唯一坚持答疑,并在寒假中后期和考试周时每天答疑的答疑工作者。

对啊,不是有教务处安排的答疑室吗?

因为教务处安排的答疑室形式上有不少不足之处。

  • 答疑者能力不足

    • 教务处目前是用 C++ 课程成绩作为答疑者能力的评判标准,这意味着不少答疑者(至少我两学期所见)实际并不了解 C++,只是基于自己的感性认识在回答。我所见最有趣的两个回答是:String& string2 = string1 调用了 String 的拷贝赋值函数;对字符串字面值的存储胡编乱造来作为“每周一题”发布(后已联系改正)。可以不为同学拓展内容,但应该至少保证所说内容的正确。
  • 答疑者答疑不及时

    • 有的答疑者会选择在一天某个时间段集中回答问题,则此时提问者一般是不在线的,明明能实时进行的交互答疑却变成了一问一答。
    • 有的答疑者完全不答疑,留下的问题第二天的答疑者可能会作答,可能因为消息同步等原因直接忽视掉。
    • 这样的做法,再加上 2023 年上半年寒假时根本不去答——那 C++ 期末考试前一天同学一共提出的 45 个问题该怎么办——我寒假中后期决定接手每天回答时,有不少提问的熟面孔已经不再向答疑室提问。
    • 在此列一下上学期的 C++ 答疑数作为参考(我的答疑数/平均答疑数/总答疑数):196/69/617。
  • 时间有限

    • 在教务处答疑室中我仅有一天里固定的时间能答疑,这不能满足我的调查需要。
  • 答疑内容无法归档,方便以后的同学查找

    • 目前教务处答疑室采取的形式是 QQ 聊天中进行提问和回答,这意味着提问和回答都是一次性的。即使针对同一个同学,也很难记起来以前回答过他哪些问题;而其他同学也无法了解到别的同学所提的问题。这严重降低了答疑效率和对同学的有用程度。

    • 针对该问题,负责的同学所提出的解决方案是要求答疑者每周精选题目并提交,但实际提交时常有敷衍,且最终采用图片形式呈现。是的,代码图片,也就是无法直接运行的代码! 为了对抗这种形式,我把每周一题整理在 readthedocs 中,但这实在过于繁琐了,最终效果不佳。

  • 代码交流困难

    • QQ 上没有对代码的语法显示,更没有对代码的直接运行支持。提问者和答疑者往往以图片、文本、文件等方式进行交流,而我值班时则尽量以 Compiler Explorer 提供可运行的在线代码链接,但这些方式总归是间接的。
    👉我的每周一题

本答疑室的缺陷

虽然本答疑室形式上能够解决教务处答疑室的痛点,但同时存在以下缺陷:

  • 提问形式相对复杂

    • 需要注册账号,点击提问按钮进行提问,且对移动端(手机端)支持不够友好。
  • 消息提示容易忽略

    • Gitee 网站默认采用站内通知形式提示消息,如果不打开网页,则不知道有没有回复;这种负担可以通过在账户设置里勾选邮箱提示减轻,但多数人不常用邮箱,邮箱提示也是容易忽略的。(当然我个人不存在这个问题,是会尽量及时答疑的。)

由于以上两个问题,答疑往来相对于 QQ 上可能延迟更高——但效果应该是比在 QQ 上完全没人来答疑好的。

C++ 相关

C++ 环境配置

C++ 学习建议

我是本校学生,我学 C++ 是为了转专业到计软智网

有一个相关的群,为了避免社会人士影响,请通过邮箱 www4112379@163.com 以标题“车车转专业到计软智网”告知我 QQ 号,附上一卡通照片(只是确认有无,注意打码!)作为证明。

加入我们

如果你满足以下条件,欢迎通过邮箱 www4112379@163.com 以标题“加入答疑室”联系我。

支持我们

如果你认为答疑室对你有帮助,请点击 Star 按钮给我们以精神鼓舞。

许可证

UNLICENSE

This is free and unencumbered software released into the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means. In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. For more information, please refer to <http://unlicense.org>

简介

C++ 答疑 展开 收起
README
Unlicense
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/cpp_tutorial/question.git
git@gitee.com:cpp_tutorial/question.git
cpp_tutorial
question
question
master

搜索帮助