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

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

Войти
Регистрация
Восстановить пароль
 
Igorokmen
3 / 3 / 1
Регистрация: 31.01.2013
Сообщений: 100
#1

Обращение файлов cpp - C++

19.10.2013, 13:19. Просмотров 345. Ответов 8
Метки нет (Все метки)

Всем привет!

Изображу наглядно код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
main.cpp
#include <iostream>
using namespace std;
 
void raznica();
void summa();
 
int main()
{
    cout << "1. хочу вычесть\n";
    cout << "2. хочу сложить\n";
    cin >> a;
    if (a==1)
    {
        raznica();
    }
    if (a==2)
    {
        summa();
    }
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
raznica.cpp
#include <iostream>
 
func(int a, int b)
{
 cout<< a-b;
}
 
int raznica()
{
   cout << "Введите A и B";
   cin >>a >> b;
   func(a, b);
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
summa.cpp
#include <iostream>
 
func(int a, int b)
{
 cout<< a+b;
}
 
int summa()
{
   cout << "Введите A и B";
   cin >>a >> b;
   func(a, b);
}
Вопрос. Как видите имя функции func(a, b) повторяется. Из за этого будет конфликт. Как сделать чтоб summa.cpp и raznica.cpp не видели друг друга??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2013, 13:19     Обращение файлов cpp
Посмотрите здесь:

Обращение к функции, из другого CPP - C++
допустим есть один проект, и лепить все в один файл не хочется.. можно ли в разные файлы в одном проекте написать функции.. чтобы в главном...

Обращение к функциям С++, расположенным в других файлах *.cpp - C++
Я пишу ПО с пустого проекта всегда, но мне хочется научиться раскладывать функции по файлам *.cpp*. но у меня не получается к этим функциям...

Обращение к наследуемому классу с кодом в отдельно cpp - C++
Приветствую. Не могу обратится к наследуемому классу из самой программы. //pepople.h #pragma once #include &quot;stdafx.h&quot; ...

Создание cpp файлов - C++
я недавно начал зучать язык программированя С++ и делаю это самостоятельно с помашю книг и интернета. я ищю статьи где было бы подробно...

Компиляция .cpp-файлов из программы - C++
Доброго времени суток! Имеется VS 2013 и .cpp файлы. Задача - написать свою программу, которая будет по очереди компилировать эти файлы,...

Условное подключение cpp файлов - C++
Здравствуйте,я вот захотел сделать в своей программе выбор языка,но увеличивать программу на кучу строк не захотел и поэтому создал 2 файла...

Архитектура размещения h и cpp файлов - C++
Доброго времени суток! Есть библа, содержащая ряд функций. Допустим, func1, func2 и ещё over 10. Меня интересует, как стандарты, здравая...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.10.2013, 13:31     Обращение файлов cpp #2
Цитата Сообщение от Igorokmen Посмотреть сообщение
Как сделать чтоб summa.cpp и raznica.cpp не видели друг друга??
Из проекта уберите один.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
19.10.2013, 13:32     Обращение файлов cpp #3
Поместить функции в анонимные namespace.
Igorokmen
3 / 3 / 1
Регистрация: 31.01.2013
Сообщений: 100
19.10.2013, 13:34  [ТС]     Обращение файлов cpp #4
нет. это не выход. Единственное что приходит в голову это вложенные функции (не знаю есть ли такие в с++).
Эти файлы не должны знать про друг друга.

Добавлено через 29 секунд
0x10, хмм..
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.10.2013, 13:37     Обращение файлов cpp #5
Если хотите, чтобы func() не была видна в другом файле, объявите её как static.

Добавлено через 1 минуту
Но зачем, вообще, эти извращения? Трудно нормальный код написать?
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
19.10.2013, 13:39     Обращение файлов cpp #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Но зачем, вообще, эти извращения? Трудно нормальный код написать?
В примере, конечно, тот еще изврат, но помещать функции и классы, используемые в пределах одного файла, в анонимное пространство имен - нормальная практика.
ct0r
Игогошка!
1768 / 670 / 42
Регистрация: 19.08.2012
Сообщений: 1,284
Завершенные тесты: 1
19.10.2013, 13:52     Обращение файлов cpp #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Если хотите, чтобы func() не была видна в другом файле, объявите её как static.
static для этой цели - это deprecated. Стандарт однозначно советует анонимные пространства имен.
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
19.10.2013, 13:53     Обращение файлов cpp #8
Цитата Сообщение от ct0r Посмотреть сообщение
static для этой цели - это deprecated.
Где конкретно? (С++11)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2013, 14:28     Обращение файлов cpp
Еще ссылки по теме:

Несколько cpp файлов в проекте - C++
Доброго времени суток ! Есть проект и в нем 2 cpp файла: Main.cpp и BinaryNumber.cpp В последнем файле создан класс и его методы....

Добавление cpp файлов в процессе компиляции - C++
Есть у меня проект. Тут один файл main #include &quot;D:\\test.h&quot; void main() { test obj; obj.func(); }

Подключение в проекте .hpp и .cpp файлов - C++
Добрый день! Среда разработки Code Blocks 13.12 Компилятор GNU GCC В проекте существует 3 файла в проекте - main.cpp, SW229.cpp и...

Взаимный include без использования cpp-файлов - C++
Возможно ли связать два класса реализованных в .h-файлах, чтобы не приходилось переносить реализацию в файлы cpp? Эти 2 класса: ...

Как писать проэкты из нескольких CPP файлов ? - C++
Поставил себе Visual C++ Express 2010, написал консольную программку. У неё внутри получилось много функций. Хочу теперь вынести их все в...


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

Или воспользуйтесь поиском по форуму:
ct0r
Игогошка!
1768 / 670 / 42
Регистрация: 19.08.2012
Сообщений: 1,284
Завершенные тесты: 1
19.10.2013, 14:28     Обращение файлов cpp #9
Цитата Сообщение от 0x10 Посмотреть сообщение
Где конкретно? (С++11)
Забавно, но в С++11 deprecated убрали, правда только из-за обратной совместимости:
Although 7.3.1.1 [namespace.unnamed] states that the use of the static keyword for declaring variables in namespace scope is deprecated because the unnamed namespace provides a superior alternative, it is unlikely that the feature will be removed at any point in the foreseeable future, especially in light of C compatibility concerns. The Committee should consider removing the deprecation.
Тем не менее преимущества использования unnamed namespaces над static по-прежнему остались.
Yandex
Объявления
19.10.2013, 14:28     Обращение файлов cpp
Ответ Создать тему
Опции темы

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