Qt C ++中未定义的头变量引用

时间:2011-06-09 05:25:49

标签: c++ qt

我的程序有问题,我在头文件中声明变量并在CPP文件上执行。我收到一个错误,这是对变量的未定义引用。

这是我项目的示例代码:

CPP文件

#include "function.h"
CClass::CClass() : m_Db(HOST,USER,PASSWORD,DATABASE)
{
   ...
}

HEADER FILE

#ifndef CONNECTION_H
#define CONNECTION_H

#include "crypt.h"

extern CCrypt *c_crypting;

#define HOST c_crypting->Decrypt_Host()
#define USER c_crypting->Decrypt_Username()
#define PASSWORD c_crypting->Decrypt_Password()
#define DATABASE c_crypting->Decrypt_Database()

#endif // DBCONNECTION_H

如果我运行此代码,我会收到“未定义引用'c_crypting'的错误”

1 个答案:

答案 0 :(得分:2)

标题文件中的这一行:

extern CCrypt *c_crypting;

不会创建c_crypting指针。它只说“我的一个代码模块将有一个指向CCrypt的指针,称为c_crypting”,以便其他代码文件可以使用它。你需要有类似的东西:

CCrypt *c_crypting; // possibly '= 0;'

在您的.cpp个文件中,并在某处正确初始化。