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

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

Войти
Регистрация
Восстановить пароль
 
faradej
0 / 0 / 0
Регистрация: 25.04.2013
Сообщений: 67
#1

Пространства имен - C++

20.05.2013, 12:39. Просмотров 233. Ответов 0
Метки нет (Все метки)

Здравствуйте. В общем в этом примере возникает ошибка при компиляции
C++
1
2
1>123.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl SALES::setSales(struct SALES::Sales &,double const * const,int)" (?setSales@SALES@@YAXAAUSales@1@QBNH@Z) в функции _main
1>C:\Users\Андрей\Documents\Visual Studio 2010\Projects\123\Debug\123.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
К сожалению нету указателя на конкретную строку, поэтому не понимаю в чем затуп. Помогите пожалуйста.

Заголовочный файл с неймспейсом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
namespace SALES
{
const int QUARTERS = 4;  //размер массивов
struct Sales    //создание типа Sales
{
    double sales[QUARTERS];
    double average;
    double max;
    double min;
};
 
void setSales(Sales & s, const double ar[], int n);
 
//void setSales(Sales & s);
 
//void showSales(const Sales & s);
}
Cpp файл с функцией:
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
26
27
28
29
30
31
32
#include "my_include.h"
#include <iostream>
using namespace SALES;
using namespace std;
 
void setSales(Sales & s, const double ar[], int n)
{
    s.max = ar[0];  //стартовые значения максимального и минимального значения
    s.min = ar[0];
 
    for(int i=0; i<n; i++)
    {
        s.sales[i] = ar[i];       //переносим значение из массива ar в массив-элемент
        if(s.sales[i] > s.max)    //структуры, а также ищем и задаем максимальное
        {                         //и минимальное значение
            s.max = s.sales[i];
        };
 
        if(s.sales[i] < s.min)
        {
            s.min = s.sales[i];
        };
 
        s.average += s.sales[i];  //вычиесляем
    }                             //среднее арефметическое
    s.average /= n;               //всех чисел и записываем
    cout << "max: " << s.max << endl << ", min: " << s.min; //тестовое отображение
};
 
//void setSales(Sales & s);
 
//void showSales(const Sales & s);
Cpp файл, в котором используется все предыдущее
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <cstdlib>
#include <string>
#include "my_include.h"
using namespace std;
using namespace SALES;
int main(void)
{
    const double digits[QUARTERS] = {45, 24, 242, 23}; //тестовый массив
    Sales hhh;   //тестовая структура
    setSales(hhh, digits, QUARTERS);
    system("pause");
    return 0;
};
Добавлено через 17 минут
Как всегда, час подумаю, напишу на форум и через 5 минут нахожу ошибку. Уже не актуально.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2013, 12:39     Пространства имен
Посмотрите здесь:

Не возникает ли коллизия имен, если использовать два пространства имен, и в каждом из них будут одноименные? - C++
Вот например namespace nms1 { int gh; } namespace nms2 { int gh;

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

Использование пространства имен - C++
Написать программу, использующую описанные типы данных: инициализация переменных (ввод пользователя), выполнение действий (в зависимости от...

Отличия пространства имен от структуры - C++
Есть ли разница между пространством имен и структурой? По-моему почти одно и то же

Пространства имен и перегрузка функций - C++
описание: есть библиотека. Пространство имен namespace1, в нем есть несколько перегруженных функций func(). // header.h #ifndef...

Неименованные пространства имен - разобрать код - C++
Всем доброго дня !!! При изучении темы неименованные пространства имен столкнулся с проблемой. Автор привел такой код. В...

как сократить название пространства имен namespace не убирая полностью ? - C++
Существует ли какой-нибудь способ сократить путь во вложенном пространстве имен путем замены на другое более короткое название, но...

Ошибка C2653: не является именем класса или пространства имен - C++
Добрый вечер. Подскажите, что можно в такой ситуации сделать? Как понимаю, #pragma once в этом случае отрабатывает на ура. Может, можно...

Как получить доступ к именам пространства имен из другого файла - C++
Помогите мне разобраться: Если определено пространство имен в одном cpp файле, как использовать одно из имен в другом cpp. Пробую что-то...

LNK2019 при объявлении переменной типа из пространства имен в структуре - C++
Доброго времени суток! Возникла такая проблема , при использовании типа определенного в пространстве имен в структуре BLOCK_INFO_FILE...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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