Форум программистов, компьютерный форум CyberForum.ru

Объявление класса в заголовочном файле - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.78
Aldragon
2 / 2 / 0
Регистрация: 28.09.2012
Сообщений: 34
29.09.2013, 20:59     Объявление класса в заголовочном файле #1
Здравствуйте. Столкнулся с тем что нужно скомпилировать библиотеку для C++. классы написал, библиотеку скомпилировал. осталось только дополнить заголовочным файлом. Не могу найти примера того, что нужно в нем написать для класса. классы выглядят примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class MyClass{
public:
       MyClass(int n1, int n1){
          val1 = n1;
          val2 = n2
       }
       int Sum(){
            return(a+b);
       }
private:
       int val1;
       int val2;
};
если кто-нибудь поделится примером или расскажет что именно нужно написать, буду благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.09.2013, 21:10     Объявление класса в заголовочном файле #2
Цитата Сообщение от Aldragon Посмотреть сообщение
классы написал, библиотеку скомпилировал.
Без заголовочных файлов?
Цитата Сообщение от Aldragon Посмотреть сообщение
осталось только дополнить заголовочным файлом.
Что дополнить?
renald
35 / 35 / 2
Регистрация: 11.02.2012
Сообщений: 105
29.09.2013, 21:20     Объявление класса в заголовочном файле #3
примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef MYCLASS_H   
#define MYCLASS_H
 
class MyClass{
public:
       MyClass(int n1, int n1){
          val1 = n1;
          val2 = n2
       }
       int Sum(){
            return(a+b);
       }
private:
       int val1;
       int val2;
};#endif
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,869
Записей в блоге: 2
Завершенные тесты: 1
29.09.2013, 21:31     Объявление класса в заголовочном файле #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Без заголовочных файлов?
да тут вся реализация в заголовке
Aldragon
2 / 2 / 0
Регистрация: 28.09.2012
Сообщений: 34
30.09.2013, 09:16  [ТС]     Объявление класса в заголовочном файле #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Без заголовочных файлов?
ну в Visual Studio поставил галочку в свойствах проекта компилировать как статическую библиотеку. получил файл .lib

Цитата Сообщение от alsav22 Посмотреть сообщение
Что дополнить?
Теперь хочу что бы я main.cpp написал, MyClass cl1; и класс создался
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.09.2013, 19:06     Объявление класса в заголовочном файле #6
Цитата Сообщение от renald Посмотреть сообщение
примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef MYCLASS_H   
#define MYCLASS_H
 
class MyClass{
public:
       MyClass(int n1, int n1){
          val1 = n1;
          val2 = n2
       }
       int Sum(){
            return(a+b);
       }
private:
       int val1;
       int val2;
};#endif
С таким заголовочным файлом, вам и библиотека не нужна. Тут вся реализация есть.
Когда библиотеку делаете, то разделите объявление класса (в .h файле оставьте только прототипы) и реализацию методов (в .cpp файле сделайте). Там, где нужно будет использовать библиотеку, после подключения библиотеки, сделайте инклуд заголовочного файла с классом (например, в main()).

lib.h
C++
1
2
3
4
5
6
7
8
9
10
class MyClass
{
public:
       MyClass(int n1, int n2);
       int Sum();
       
private:
       int val1;
       int val2;
};
lib.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "lib.h"
 
MyClass::MyClass(int n1, int n2)
{
    val1 = n1;
    val2 = n2;
}
       
int MyClass::Sum()
{
    return(val1 + val2);
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
#include "lib.h"
 
int main()
{
    MyClass obj(6, 2);
    obj.Sum();
 
    return 0;
}
Yandex
Объявления
30.09.2013, 19:06     Объявление класса в заголовочном файле
Ответ Создать тему
Опции темы

Текущее время: 00:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru