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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Allegro http://www.cyberforum.ru/cpp-beginners/thread965206.html
Есть программа, создает прямоугольник и надпись в нем, типа кнопок. Нужно сделать таких кнопок во всю длину экрана, несколько штук. Вопрос в том, что можно ли сделать какой-нибудь алгоритм для их создания или каждый по отдельности делать? Еще ошибку выдает(красным) #include <iostream> #include <stdlib.h> #include <allegro.h> #define MAXX 1280 #define MAXY 1024
C++ Синглтон есть базовый класс Singleton и производный от него Logger, все вроде бы хорошо работает при создании 1 объекта, но появилась необходимость создания нескольких логов которые бы служили для конкретных целей и каждый бы писал в свой собственный файл как это реализовать вот то что сам смог: #pragma once; #include<iostream> template<class T> class Singleton { public: static T* instance() { http://www.cyberforum.ru/cpp-beginners/thread965205.html
C++ Алгоритм быстрой сортировки не работает с большим количеством чисел
Требовалось написать программу с алгоритмами сортировки, затем сравнить эти алгоритмы (но проблема не в этом). Все работает, кроме быстрой сортировке. Ввожу размер массива 77, все сортируется во всех алгоритмах, ввожу 78 и выше, зависает именно на быстрой сортировке и завершается((( В чем проблема можеть быть? Вот, собственно, код. #include <iostream> #include <stdlib.h> #include <ctime>...
Общие символы для двух строк(своего класса) через перегрузку оператора C++
Создать свой строковый класс, добавить функцию, которая создает строку, содержащую пересечение двух строк, то есть общие символы для двух строк. Например, результатом пересечения строк "sdqcg" "rgfas34" будет строка "sg". Для реализации функции перегрузить оператор * (бинарное умножение). Вот что у меня получилось(выдает ошибку нарушение прав доступа): #include <iostream> #include <string>...
C++ C++ Очередь http://www.cyberforum.ru/cpp-beginners/thread965182.html
Предисловие к заданию: Определить структуру очереди и разработать функции, которые необходимы для работы с заданным контейнером: функция складывания элемента push(память выделять динамически), функцию извлечения элемента pop, функцию печати содержимого контейнера на экран, функцию удаления контейнера. Задание: Создать программное приложение, в котором создается контейнер и заполняется...
C++ Дано число, найти максимальную цифру и количество простых цифр Есть базовый класс. В нем определена вирт функция со следующей реализацией: для введенного числа она ищет самую большую цифру числа и возвращает на выходе. Есть производный класс, в котором реализация этой вирт функции следующая, она ищет количество цифр числа, являющего простыми числами т.е. вводим число с клавы - допустим 145279(3 простых числа - 2,5,7.): Введите число -> 145279... подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.09.2013, 19:06     Объявление класса в заголовочном файле
Цитата Сообщение от 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;
}
 
Текущее время: 12:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru