2012-01-03 121 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