Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/43: Рейтинг темы: голосов - 43, средняя оценка - 4.77
Aldragon
2 / 2 / 1
Регистрация: 28.09.2012
Сообщений: 34
1

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

29.09.2013, 20:59. Просмотров 8139. Ответов 5
Метки нет (Все метки)

Здравствуйте. Столкнулся с тем что нужно скомпилировать библиотеку для 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;
};
если кто-нибудь поделится примером или расскажет что именно нужно написать, буду благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2013, 20:59
Ответы с готовыми решениями:

Объявление поля класса в заголовочном файле
Здравствуйте! Подскажите пожалуйста, как сделать правильно. Есть класс А и...

Два класса в одном заголовочном файле, предварительное объявление
Дико туплю, никак не могу понять, где косячу. Ситуация - есть два описания...

Объявление константы в заголовочном файле
Как объявить константу и массив в заголовочном файле? Map.h #pragma once...

Не могу объеявить экземпляр класса в заголовочном файле (qt, gcc)
Всем привет. Проблема состоит в следующем. Есть два класса -...

Объявление класса Cat в файле Cat.hpp?
Всем доброго время суток столкнулся с такой вот проблемой, нужно объявить класс...

5
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
29.09.2013, 21:10 2
Цитата Сообщение от Aldragon Посмотреть сообщение
классы написал, библиотеку скомпилировал.
Без заголовочных файлов?
Цитата Сообщение от Aldragon Посмотреть сообщение
осталось только дополнить заголовочным файлом.
Что дополнить?
0
renald
35 / 35 / 8
Регистрация: 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
0
Croessmah
++Ͻ
14630 / 8379 / 1582
Регистрация: 27.09.2012
Сообщений: 20,583
Записей в блоге: 2
Завершенные тесты: 1
29.09.2013, 21:31 4
Цитата Сообщение от alsav22 Посмотреть сообщение
Без заголовочных файлов?
да тут вся реализация в заголовке
0
Aldragon
2 / 2 / 1
Регистрация: 28.09.2012
Сообщений: 34
30.09.2013, 09:16  [ТС] 5
Цитата Сообщение от alsav22 Посмотреть сообщение
Без заголовочных файлов?
ну в Visual Studio поставил галочку в свойствах проекта компилировать как статическую библиотеку. получил файл .lib

Цитата Сообщение от alsav22 Посмотреть сообщение
Что дополнить?
Теперь хочу что бы я main.cpp написал, MyClass cl1; и класс создался
0
alsav22
5442 / 4837 / 831
Регистрация: 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;
}
5
30.09.2013, 19:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2013, 19:06

Переменная в заголовочном файле
//qwer.h class qwer { public: extern int a; }; //qwer.cpp #include...

Функции в заголовочном файле
Почему нельза задать тело функции в .h файле??? например(header.h): #ifndef...

Setlocale в заголовочном файле
main.cpp #include <cstdlib> #include <iostream> #include <cstring>...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru