Заголовочные файлы C ++, возвращают неверный тип - PullRequest
0 голосов
/ 03 января 2012

Я создал простой код в MVS2010, но он не работает.

Существует только класс с заголовочным файлом и main.

Не могли бы вы сказать, что не так?

Main:

#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 ]

4 голосов
/ 03 января 2012
  1. Вам необходимо добавить точку с запятой ';'после определения класса.
  2. Определение функции-члена должно иметь вид returnType ClassName::FunctionName(args).

    void Developer::create(){}
    void Developer::edit(){}
    void Developer::remove(){}
    
  3. Кроме того, вам не нужнополуцвет после директив #include.Я бы предложил пройтись по книге по основам C ++ и попробовать примеры, чтобы овладеть языком!

1 голос
/ 03 января 2012

Когда я запускаю свое приложение, оно дает необработанные исключения и вылетает ...

Конечно, это так. Ваш конструктор не заполняет ни одну из переменных-членов. Так что xx.Dev_ID не определено; он содержит случайный мусор. При попытке std::cout случайного мусора программа справедливо вылетает.

Вы, вероятно, намереваетесь инициализировать Dev_ID некоторым значением. Вы должны сделать это в конструкторе. Вот что такое конструктор для : инициализация переменных-членов.

Как сказал Четан, вам нужно просмотреть некоторые основные книги по C ++.

...