我自己定义的一个数据类型CMySql.并且在stdafx.h中定义了一个变量extern CMySql MySql;
然后我在我项目中的其它的.cpp文件中用了这个MySql对象.编译报错.我在stdafx.cpp中写了CMySql MySql.
之后.编译正确.我想问一下各位.这是什么原因.还有一个问题.如果我在写项目的过程中把一些函数参数用指针来表示.在函数中会带来内存泄漏吗?谢谢了.

解决方案 »

  1.   

    使用extern声明外部变量是不会定义变量的,因此需要有变量的定义
    在stdafx.cpp中写CMySql MySql;定义该变量
    在其他地方用extern声明就不会出错了应该不会内存泄漏吧,指针的对象是在函数外定义的吧
      

  2.   

    我的个人理解C++的声明一般放在头文件中.其它的文件想用此类的话.只须包含该头文件或者该名字空间就可以了.
    我把CMySql MySql在stdafx.cpp定义.也就是说我把一个对象的定义放在.cpp中.一般的我们都是在.cpp中实现.h中声明的一些该类的成员函数.如果在stdafx.cpp中声明对象的话.然后包含stdafx.h头文件就可以直接用该对象.感觉在理解上有点想不通.
      

  3.   

    使用extern声明外部变量,你多声明几次是没问题的,但只能定义一次就行了,
    第二个问题是不会内存泄露的,除非你的函数内部NEW了内存