2012-01-03 92 views
-4

我在MVS2010中創建了簡單的代碼,但它不起作用。頭文件C++,返回錯誤類型

只有一個頭文件和主類。

你能告訴我什麼是錯?

主營:

#include <iostream> 
#include "Developer.h" 


int main() { 

    Developer xx("asd", "sfdasdf", "asdsa"); 
    std::cout << xx.Dev_ID; 
    char c; 
    std::cin >> c; 
    return 0; 
} 

頁眉:

class Developer { 
public: 
    char * Dev_ID; 
    char * Dev_Name; 
    char * ApplicationType; 
    char * Name_Application; 

public: 
    Developer(char * name, char * appType, char * appName); 
    void create(); 
    void edit(); 
    void remove(); 
}; 

類:

#include "Developer.h" 

Developer::Developer(char * name, char * appType, char * appName){} 
void Developer::create(){} 
void Developer::edit(){} 
void Developer::remove(){} 
+2

我想你在開發人員課程後缺少一個分號。 – Mysticial 2012-01-03 07:55:30

+4

-1:當您沒有明確指出錯誤(編譯器錯誤或意外輸出)時,很難回答您的問題。多個代碼文件使得難以重現問題,並且由於包含行後面的';',代碼顯然不能編譯。 – thiton 2012-01-03 07:57:36

+0

是的,我知道,對不起 – ruhungry 2012-01-03 08:15:19

回答

1

當我運行我的應用程序它提供了一個未處理的異常和崩潰......

當然重要。你的構造函數不填充任何成員變量。所以xx.Dev_ID是未定義的;它包含隨機垃圾。當您嘗試std::cout隨機垃圾時,程序正確崩潰。

您可能打算將Dev_ID初始化爲某個值。你需要在構造函數中這樣做。這就是的構造函數:初始化成員變量。如Chethan所述,您需要查看一些基本的C++書籍。

+0

呃,我忘了它...謝謝:) – ruhungry 2012-01-03 08:57:03

4
  1. 您需要添加一個分號 ';'課後定義。
  2. 成員函數的定義應該是returnType ClassName::FunctionName(args)的形式。

    void Developer::create(){} 
    void Developer::edit(){} 
    void Developer::remove(){} 
    
  3. 另外,#include指令後不需要半色。我會建議閱讀一本C++基礎知識書,並試用這些示例來獲得該語言!

+0

好吧,我編輯了我的代碼和我的文章,但它仍然無法正常工作。當我運行我的應用程序時,它會給出未處理的異常和崩潰... – ruhungry 2012-01-03 08:18:30

+1

@Whiteangel:因爲您的類對象中有一大堆完全未初始化的指針,然後嘗試通過將它流式傳輸到'std :: cout' 。 – 2012-01-03 15:03:35