爱问知识人 爱问教育 医院库

构造函数问题

首页

构造函数问题

如图,两个构造函数的定义放在.h文件中会出现如图中的错误,但是剪贴到cpp中,构造时就会顺利通过,请问这是为什么?

如图,两个构造函数的……
提交回答
好评回答
  • 2013-01-15 20:17:28
    你需要了解一下编译的过程:
    预编译:编译器一遍或者多遍扫描文件,识别宏定义、变量、结构、类定义等信息,并将头文件嵌入到引用的文件中;
    然后是编译,主要包括词法分析、语法分析、中间代码生成、优化、连接等等步骤
    可见,头文件作中会被嵌入到C文件中,那么在你的C文件中,由于引用了很多头文件,头文件之间又有可能相互引用,因此可能导致你的C文件同一个函数、方法、变量多次被嵌入,自然就会出现重复定义的问题。
    因此编译的时候会是多重定义的错误提示
    一楼的说是一种解决方案,它通过条件编译的方法确保了重复定义不会出现;
    另一种方法就是,将各类定义全部放在c文件中,因为c文件是不会被嵌入的,这就最大可能性避免了重复定义的可能行。

    好***

    2013-01-15 20:17:28

其他答案

    2013-01-15 20:54:04
  • 其实可以在头文件中定义,但是,你必须得确保你的头文件只被#include了一次,因为每#include一次就会定义一次,就是重定义了,所以,一般定义是不写在头文件中的!

    7***

    2013-01-15 20:54:04

  • 2013-01-15 15:19:10
  • 如果是放在.h文件里,要用下面的格式:
    #ifnde xxxx
    #define xxxx 1
    /*  .h文件原来的内容 */
    #endif

    小***

    2013-01-15 15:19:10

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 173-192
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):