另外,cpp 文件可以修改命名空间和链接的头文件吗
通用的原则是:任何一处修改都只能影响一个源文件,产生跨源文件影响的修改(例如头文件、extern
变量等等)都是不被允许的。下面我尽量把修改的限制讲清楚。
除了两个“挑战任务“可以任意修改文件,其余的实验都遵循这几条规定:
- 头文件 (.h / .hpp) :不允许进行任何修改。
- 源文件 (.cpp) :除了指定的函数以外,
- 你可以自己加新的函数和新的(全局)变量;
- 也可以引入其他头文件,但仅限 Dandelion 自身或目前已包含的第三方库,不允许增加任何新的库;
- 所有函数声明、变量定义、命名空间标识符均不可更改,但可以向某个命名空间内增加新的函数;
- 不允许使用
extern
关键字。
- 链接 (linking) :不允许额外链接任何静态 (.lib / .a) 和动态 (.so / .dll) 库。
你对“链接”的理解有误,头文件并不是链接到可执行文件的,而是被编译到可执行文件的,我先理解为引入(包含)头文件。