关于struct的重定义问题 #34
-
|
在完成程序主体的过程中,我遇到了在不同.cpp下多次定义同一struct会出现奇怪bug的情况,查询相关资料得知重定义struct会出现这类bug,于是我把所有的struct放入一个.h中,并且个.cpp都引用以解决这一问题,想请问各位在通常的程序设计中是如何安排struct的定义以避免这类问题呢 |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 4 replies
-
|
一般而言 class struct的定义都应放入头文件之中 |
Beta Was this translation helpful? Give feedback.
-
|
也许这个是你想问的? |
Beta Was this translation helpful? Give feedback.
-
|
首先,在 C++ 里,你可以把 struct 看作一种特殊的 class。 然后,一个比较基础的编程实践是,把类型的定义放在 .h 然后在 .cpp 实现定义。 如果你有一个工具类,在多个文件中都会使用,那么可以加上一个宏定义,使得不同文件的相同#include在展开的时候不会产生冲突(从楼上的实例文章复制过来的): 在用 Visual Studio 的时候,可能会给你自动生成一个 |
Beta Was this translation helpful? Give feedback.
首先,在 C++ 里,你可以把 struct 看作一种特殊的 class。
然后,一个比较基础的编程实践是,把类型的定义放在 .h
然后在 .cpp 实现定义。
如果你有一个工具类,在多个文件中都会使用,那么可以加上一个宏定义,使得不同文件的相同#include在展开的时候不会产生冲突(从楼上的实例文章复制过来的):
在用 Visual Studio 的时候,可能会给你自动生成一个
#pragma once。这个效果和上面是差不多的,但是可能在别的系统下编译的时候不支持。使用哪种就取决于你了。