[问题] 主程式include各class.h的问题

楼主: OfficeGL (努力上班族)   2019-07-22 15:53:55
开发平台(Platform): (Ex: Win10, Linux, ...)
vs 2017
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
vc++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
stdlib
问题(Question):
1.
我有一个主程式, 以 main() 为入口点
因为这个主程式 main 会用到其他 class A, B, C
main 本身要 include A, B, C .h
也要 include <iostream> ... 等等
但是 A, B, C.h 里面也有 include 过 <iostream> 了
这样会有问题吗? 该如何避免这个问题呢
2.
main 中需要 #define Length 透过编译时给定参数
ex.
@ main.cpp
#ifndefine Length
#define Length 100
#endif
A, B, C.h 也都有上面这段
所以main include A.h, B.h, C.h 之后就重复了
请问有办法避开吗~
谢谢~
作者: BlazarArc (Midnight Sun)   2019-07-23 18:54:00
同意楼上
作者: james732 (好人超)   2019-07-22 16:26:00
google: include guard
作者: Gway (我爱的你 也爱我 好吗?)   2019-07-22 16:46:00
你已经得到它了! #ifndefine #define #endifdefine#endif
作者: Schottky (顺风相送)   2019-07-22 17:54:00
上次的 lex 后来有顺利解决吗?
作者: s4300026 (s4300026)   2019-07-22 21:03:00
#pragma once ?
作者: loveme00835 (发箍)   2019-07-22 22:07:00
楼上的做法不好, 可以谷歌为什么
作者: LPH66 (-6.2598534e+18f)   2019-07-23 08:34:00
个人以为 #pragma once 的缺点只有它是 de facto 标准(毕竟它本质上是 #pragma, 不会也不可能成为正式标准)其他方面来说我会觉得使用方便性上和语意上都比正式做法好

Links booklink

Contact Us: admin [ a t ] ucptt.com