2015-08-09 3 views
2

Привет, я просто пытался изучить отдельные классы на C++. Я не знаю, почему мой код не работает. Так вот основной код файлаПочему мои функции не определены, когда я уже объявил тип?

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

using namespace std; 

int main() 
{ 
    Number key; 
    key.setNumber(200); 
    cout<<key.getNumber(); 
    return 0; 
} 

Вот код CPP класса функции файл

#include "Number.h" 
#include <iostream> 
using namespace std; 

void Number::setNumber(int transfernumber) 
    { 
    privatenumber = transfernumber; 
    } 

int Number::getNumber() 
    { 
     return privatenumber; 
    } 

А вот заголовочный файл

#ifndef NUMBER_H 
#define NUMBER_H 


class Number 
{ 
    public: 
     Number(); 
     void setNumber(int transfernumber); 
     int getNumber(); 
    private: 
     int privatenumber; 
}; 

#endif // NUMBER_H 

Благодаря

+0

Что заставляет вас думать, что ваш код не работает? – Galik

+0

Когда я создаю программу в кодовых блоках, она говорит, что разные функции не определены – TommyL

+0

Можете ли вы опубликовать сообщение об ошибке и указать в своем коде, в какой строке компилятор говорит, что произошла ошибка? – Galik

ответ

2

В вашей cpp, вам нужно определить конструктор по умолчанию для класса Number. Например:

Number::Number() : privatenumber(0) {} 
0

У меня есть ваш пример. Ошибка для main.cpp не найдена number.cpp. У вас есть три пути ее решения:

  1. написать свой main() в number.cpp, а не соло файла.
  2. выполните команду main.cpp с помощью команды linux gcc или напишите Makefile, вместо использования кодовых блоков.
  3. Если вы хотите использовать кодовые блоки для компиляции, вы должны создать проект, а затем добавить три проекта в проект. Теперь скомпилируйте main.cpp.

Используйте три способа выше, я думаю, вы скомпилируете их успешно.

BTW, вы должны добавить реализацию Number::Number().

Смежные вопросы