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

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

Войти
Регистрация
Восстановить пароль
 
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
#1

Unit,Header,Imp - C++

17.09.2009, 10:29. Просмотров 626. Ответов 5
Метки нет (Все метки)

Здравствуйте!
main.cpp
C++
1
2
3
4
5
6
7
//#include "unit1.h"
//#include "unit2.h"
#include "unit3.h"
int main()
{
    return 0;
}
unit1.h
C++
1
2
3
4
5
6
#pragma once
typedef double real;
struct NewTyp
{
  real x,y;
};
unit2.h
C++
1
2
3
#pragma once
#include "unit1.h"
NewTyp val;
unit3.h
C++
1
2
3
#pragma once
#include "unit2.h"
void Init();
unit3.cpp
C++
1
2
3
4
5
6
#include "unit3.h"
void Init()
{
  val.x=10;
  val.y=20;
};
Ну и как наверно уже догадались профессионалы я словил "Error LNK2005".
где можно почитать о том, что я делаю не так. И как делать правильно?
>Честное слово не понимаю, почему коллизия unit3.obj и main.obj
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2009, 10:29     Unit,Header,Imp
Посмотрите здесь:

Unit tests - C++
Добрый день. Кто-нибудь сталкивался с написанием unit тестов? Кто может посоветовать литературу или хороший ресурс, в котором будет...

Unit - тестирование - C++
Есть ли на C03++ стандарте что-то, помогающее в этом? И как это самое использовать? Ну или подкиньте хорошую статейку?

unit-тестирование функции - C++
Заполнить массив n´m нулями и единицами «цепочкой квадратов». Размер квадрата задается. Тест: K = 4 1 1 1 1 0 0 0 0 0 0 1 0 0 1 0 0...

Переменная на весь Unit - C++
Доброго вечера всем! Учил делфи и программировал на нём же. К с++ даже не притрагивался. В делфе юзал одну переменную на весь юнит или...

Создать модуль Unit с определением структуры и операций на ней - C++
Привет! Как создать модуль Unit в С++ (фигурально выражаясь). Т. е. есть ли что-то похожее в с++?

описания header-ов - C++
Подскажите пожалуйста где можно описания стандартных заг. файлов.

struct and header files - C++
Куда записывать struct? Если определяю его вклассе NMEAStructs.cpp в таком виде: #include "NMEAStructs.h" #include "Satellites.h" ...

Шаблоны в header и cpp - C++
Столкнулся с такой проблемой- пишу инлайн шаблонный предикат в хедер.х ) затем объявляю шаблонизированую ф-цию, затем реализую эту ф-цию...

Можно ли дублировать header? - C++
Программа реализована в нескольких файлах. Можно ли использовать один и тот же <*.h>-файл в каждом из файлов программы? Если нет, то как...

Как работает header - C++
Объясните как работает функция header в с++. То есть включить в библиотеку свой файл, но как? И как он будет работать, то есть...

Папки header файлов. VS 2010 - C++
Подскажите как в Visual Studio 2010 указать, где находятся header файлы. В папке, где находятся соответствующие cpp файлы (в папке...

Загрузить header один раз - C++
Есть .h файл с функциями который загружается в различных .cpp Вот содержимое .h файла #pragma once #ifndef DEBUG_H_H #define...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
17.09.2009, 10:43     Unit,Header,Imp #2
Adler, Или в unit2.h
C++
1
struct NewTyp val;
или в unit1.h
C++
1
2
3
4
typedef struct 
{
  real x,y;
} NewTyp;
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
17.09.2009, 11:09  [ТС]     Unit,Header,Imp #3
easybudda
не помогло
Вложения
Тип файла: 7z scr.7z (402 байт, 14 просмотров)
Alexandoros
228 / 66 / 4
Регистрация: 02.06.2009
Сообщений: 280
17.09.2009, 12:11     Unit,Header,Imp #4
Ну и как наверно уже догадались профессионалы я словил "Error LNK2005".
NewTyp val; переместить из unit2.h в unit3.cpp
а в unit2.h написать extern NewTyp val;
И как делать правильно?
НИКОГДА НЕ ОПРЕДЕЛЯТЬ НЕКОНСТАНТНЫЕ ПЕРЕМЕННЫЕ В ХЕДЕРЕ.
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
17.09.2009, 12:39  [ТС]     Unit,Header,Imp #5
Alexandoros
Спасибо! Как раз то, что надо

Добавлено через 4 минуты
сделал так:
unit2.cpp
C++
1
2
#include "unit2.h"
NewTyp val;
unit2.h
C++
1
2
3
#pragma once
#include "unit1.h"
extern NewTyp val;
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
17.09.2009, 12:50     Unit,Header,Imp #6
вот так получилось:
unit1.h
C
1
2
3
4
5
typedef double real;
typedef struct {
    real x;
    real y;
} Point_t;
unit2.h
C
1
2
3
#include "unit1.h"
 
Point_t pt;
unit3.h
C
1
2
3
#include "unit2.h"
 
void init();
unit3.c
C
1
2
3
4
5
6
#include "unit3.h"
 
void init(){
    pt.x = 3.0;
    pt.y = 5.0;
}
main.c
C
1
2
3
4
5
6
7
8
#include <stdio.h>
#include "unit3.h"
 
int main(){
    init();
    printf("pt.x = %.1f\tpt.y = %.1f\n", pt.x, pt.y);
    return(0);
}
компилировал вот так:
Код
gcc -o main main.c unit3.c
вывод:
Код
$ ./main 
pt.x = 3.0      pt.y = 5.0
Yandex
Объявления
17.09.2009, 12:50     Unit,Header,Imp
Ответ Создать тему
Опции темы

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