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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.78
Aldragon
2 / 2 / 0
Регистрация: 28.09.2012
Сообщений: 34
#1

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

29.09.2013, 20:59. Просмотров 5838. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объявление класса в заголовочном файле (C++):

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

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

Объявление константы в заголовочном файле - C++
Как объявить константу и массив в заголовочном файле? Map.h #pragma once #include <SFML\Graphics.hpp> extern const...

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

Объявление класса Cat в файле Cat.hpp? - C++
Всем доброго время суток столкнулся с такой вот проблемой, нужно объявить класс Cat в файле Cat.hpp. Работаю в Visual Studio 2008....

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

5
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.09.2013, 21:10 #2
Цитата Сообщение от Aldragon Посмотреть сообщение
классы написал, библиотеку скомпилировал.
Без заголовочных файлов?
Цитата Сообщение от Aldragon Посмотреть сообщение
осталось только дополнить заголовочным файлом.
Что дополнить?
0
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
0
Croessmah
Эксперт CЭксперт С++
13512 / 7670 / 866
Регистрация: 27.09.2012
Сообщений: 18,870
Записей в блоге: 3
Завершенные тесты: 1
29.09.2013, 21:31 #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Без заголовочных файлов?
да тут вся реализация в заголовке
0
Aldragon
2 / 2 / 0
Регистрация: 28.09.2012
Сообщений: 34
30.09.2013, 09:16  [ТС] #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Без заголовочных файлов?
ну в Visual Studio поставил галочку в свойствах проекта компилировать как статическую библиотеку. получил файл .lib

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

Функции в заголовочном файле - C++
Почему нельза задать тело функции в .h файле??? например(header.h): #ifndef HEADER_H #define HEADER_H void f(){} #endif //...

Структура в заголовочном файле - C++
Код .h: // file.h #pragma once struct Worker { char name; int cdate; int vdate; char post;

Setlocale в заголовочном файле - C++
main.cpp #include <cstdlib> #include <iostream> #include <cstring> #include <string> #include "studio.h" using namespace...

Создание структуры в заголовочном файле - C++
Доброго времени суток! Решил заняться разработкой приложений, сейчас делаю небольшую программу, библиотека SFML. Вопрос: Я создал...


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

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

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