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

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

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

Unit,Header,Imp - C++

17.09.2009, 10:29. Просмотров 638. Ответов 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 (C++):

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

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

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++
Подскажите пожалуйста где можно описания стандартных заг. файлов.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
17.09.2009, 10:43 #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  [ТС] #3
easybudda
не помогло
Вложения
Тип файла: 7z scr.7z (402 байт, 14 просмотров)
Alexandoros
228 / 66 / 4
Регистрация: 02.06.2009
Сообщений: 280
17.09.2009, 12:11 #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  [ТС] #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
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
17.09.2009, 12:50 #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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2009, 12:50
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.09.2009, 12:50
Ответ Создать тему
Опции темы

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