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

C++

Войти
Регистрация
Восстановить пароль
 
KrTaras
12 / 12 / 1
Регистрация: 09.09.2009
Сообщений: 35
#1

Подключение библиотеки - C++

27.01.2010, 00:21. Просмотров 981. Ответов 5
Метки нет (Все метки)

Здраствуйте. Как мне подключить библиотеку к проекту только 1 раз. тоесть есть у меня 4 срр файла каждий поключаен набор библиотек
C++
1
2
3
4
5
6
7
8
9
10
11
//lib.h
#pragma once
#include <iostream>
#include <conio.h>
#include <vector>
#include "Firm.h"
#include "Point.h"
#include "Penta.h"
#include "Lack.h"
#include "Akryl.h"
.....
клас Firm написаний как синглтон(создаетса только 1 обект)
возникает ошибка
1>Main.obj : error LNK2005: "private: static class Firm * Firm::instance" (?instance@Firm@@0PAV1@A) already defined in Akryl.obj
сам мейн
C++
1
2
3
4
5
6
7
8
#include "Lib.h"
int main()
{
    Firm* f = Firm::getInstance();
    Point* p1 = new Penta(f);
    Point* p2 = new Lack(f);
    Point* p3 = new Akryl(f);
...
другой клас
C++
1
2
3
4
5
#include "Lib.h"
Akryl::Akryl(Firm* f)
{
    f->Subscribe(this);
}
синглтон
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once
class Point;
class Firm
{
    std::vector<Point*> point;
    static Firm* instance;
    Firm(){};
public:
    static Firm* getInstance()
    {
        if(!instance)
        {
            instance = new Firm;
        }
        else
        {
            return instance;
        }
    }
    void Subscribe(Point*);
    void Unsubscribe(int);
    void Notyfy(int);
    void Reset();
};
Firm *Firm::instance = NULL;
помогите плз)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2010, 00:21     Подключение библиотеки
Посмотрите здесь:

Подключение библиотеки - C++ Builder
Пишу if (Button == mbLeft) Form1-&gt;Close(); Говорит Unit1.cpp(27): E2451 Undefined symbol 'Button' таже лажа с Key='*'...

подключение библиотеки - C++
доброго времени суток, при подключении библиотеки #pragma comment(lib, &quot;OpenGL.lib&quot;) (все это проделываю в visual c++) необходимо ли...

Подключение библиотеки - C++
Может кто знает, подскажите пожалуйста как в dev C++ подключить библиотеку для того чтобы использовать winsock2.h. Пытаюсь написать...

Подключение библиотеки Qt - C++ Linux
Как подключить библиотеку Qt? Например я хочу включить QtCore в свой проект. #include &lt;QtCore&gt; int main() { return...

Подключение библиотеки Direct - C++
В соответствущем разделе мне вряд ли скоро ответят поэтому решил задать вопрос здесь. Суть проблемы - линковщик не находит ссылки на...

Подключение библиотеки gtkmm.h - Кроссплатформенная разработка
Скачал с официального сайта библиотеку gtkmm.h, распакованную папку перенёс в папку include. Компилятор (CodeBlocks) при использовании...

rxlib. Подключение библиотеки - C++ Builder
Народ, привет. Кто нибудь знает, как можно подключить библиотеку rxlib? Вот ссылка на файл:...

Подключение библиотеки WinPCap - C++
Здравствуйте! Столкнулся с проблемой. Не знаю как правильно подключить библиотеку. может кто-нибудь по пунктам для чайника...

Подключение библиотеки libcurl - C++
Всем привет. Решил поработать с библиотекой libcurl. Скачал архив, распаковал на рабочий стол. Не пойму что делать дальше. В интернете в...

Подключение библиотеки SDL - Visual C++
как правильно надо подключать библиотеку? хедеры кинул в include/SDL2 dll в bin lib в lib vsexpress 2008 1&gt;------ Построение...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
2338 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
27.01.2010, 00:24     Подключение библиотеки #2
убери весь код из h
insideone
Модератор
Автор FAQ
3636 / 914 / 49
Регистрация: 10.01.2010
Сообщений: 2,465
27.01.2010, 00:26     Подключение библиотеки #3
Возникает оно понятное дело из за чего. Мне щас тяжело будет объяснить как это грамотно все исправить. Попробуйте просто обернуть примерно так:
C++
1
2
3
4
5
6
#ifndef FIRM_CLASS
#define FIRM_CLASS
class Firm {
.......
}
#endif
KrTaras
12 / 12 / 1
Регистрация: 09.09.2009
Сообщений: 35
27.01.2010, 00:41  [ТС]     Подключение библиотеки #4
убери весь код из h
вся суть в том что описание должно бить в h файлах((

C++
1
2
3
4
5
6
#ifndef FIRM_CLASS
#define FIRM_CLASS
class Firm {
.......
}
#endif
непомогло((
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
27.01.2010, 03:46     Подключение библиотеки #5
KrTaras, к каждому cpp подключай только те h, которые ему действительно необходимы. Не надо все подключения сливать в один большой h файл.
Rififi
2338 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
27.01.2010, 14:34     Подключение библиотеки #6
KrTaras,

вся суть в том что описание должно бить в h файлах((

у меня разве написано "убери описание из h"?
Yandex
Объявления
27.01.2010, 14:34     Подключение библиотеки
Ответ Создать тему
Опции темы

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