2011-06-09 43 views
0

我在程序中遇到問題,我在頭文件中聲明變量並在CPP文件上執行它。我收到一個錯誤,它是對變量的未定義引用。未定義的Qt頭文件變量引用C++

這裏我的項目的示例代碼:

CPP文件

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

頭文件

#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 '「

回答

2

你的頭文件中的這一行:

extern CCrypt *c_crypting; 

不會創建c_crypting指針。它只會說「我的一個代碼模塊將有一個指向CCrypt的指針,稱爲c_crypting」,以便其他代碼文件可以使用它。你需要有類似:

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

.cpp文件中的一個,並適當的地方初始化。

+0

嗯..有沒有一種方法,我不會初始化CCrypt * c_crypting在CPP文件中? – 2011-06-09 05:33:04

+0

呃,不是。它必須在某處被初始化,否則它不會指向任何東西,所以當你第一次嘗試使用它時,你的代碼會崩潰。 – Mat 2011-06-09 05:34:28

+0

哦好吧謝謝你的幫助... – 2011-06-09 05:42:47