Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Deimon
35 / 35 / 2
Регистрация: 29.08.2009
Сообщений: 178
#1

не видит тела функции в .cpp файле. Использую namespace - C++

16.04.2013, 12:25. Просмотров 319. Ответов 0
Метки нет (Все метки)

Решил на всякий случай использовать namespace в своей программе, но столкнулся с тем, что не понимаю как описать в одном файле объявления методов, а в другом тела (как в классах). Либо у меня где-то ошибка, которая объявилась только сейчас. Подскажите пожалуйста, как правильно использовать namespace, и можно ли описывать методы в двух разных местах.

Вот что происходит:
есть юнит resource с объявленным namescape MainFunctions и функцией RollValue(..)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//resource.h файл
#ifndef resourceH
#define resourceH
 
#include <vcl.h>
#include <stdio.h>
#include <stdlib.h>
#include <list>
 
#define GTB Graphics::TBitmap
HANDLE DataDLL = LoadLibrary("Data.dll");
 
namespace MainFunctions
{
  int Summ(int a, int b) {return a+b; }
  bool RollPercent(short perc0to100);
  int RollValue(int min, int max);
}
 
#endif
в 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
//resource.cpp файл
#pragma hdrstop
#include "resource.h"
 
bool MainFunctions::RollPercent(short perc) {
  randomize();
  if (perc >rand()%100) return true; else return false;
}
 
int MainFunctions::RollValue(int min, int max) {
  int val= max-min;
  int summ=0;
  while (val>32767)  
  {
    randomize();
    summ= summ + rand()%32767;
    val= val - 32767;
  }
  randomize();
  summ= summ + rand()%val + min;
  return summ;
}
 
#pragma package(smart_init)
Этот юнит подключен в хэдере main юнита.
PHP
1
2
3
4
//main.h
...
#inlude "resource.h"
....
и используется в исполняемом файле, где и возникает ошибка
C++
1
2
//main.cpp
int val = MainFunctions::RollValue(-1000000,10000000);
выхлоп компилятора выдает ошибку [ILINK32 Error] Error: Unresolved external 'MainFunctions::RollValue(int, int)' referenced from "путь к мэйн юниту.OBJ"

Что я делаю не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 12:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не видит тела функции в .cpp файле. Использую namespace (C++):

С помощью командной строки >namberstr f1.cpp Определить число строк в файле с именем f1.cpp - C++
С помощью командной строки &gt;namberstr f1.cpp Определить число строк в файле с именем f1.cpp

Описание функции шаблонного класса библиотеки в отдельном cpp-файле - C++
Есть библиотека. В файле ARRAYLIST.HPP описан шаблон template &lt;typename _Type&gt; class ArrayList { private: int length; ...

определение функции в ЗАГОЛОВОЧНОМ файле. В основном предполагается переопределение ТЕЛА этой функции. Как это сделать, не правя хидер? - C++
Сабж, а подробнее если в заголовочном файле hider.h описана функция, допустим так: void f (); void f () { int per= 10; } ...

Не подключается namespace в заголовочном файле - C++
Всем доброго дня. Ситуация такая: common.h #pragma once namespace CommonSystem { class Device {

Не видит cpp файл... - C++
У меня был h-файл с тремя классами и кодом их методов. Узнал что лучше код методов хранить в одноименном cpp-файле. Оставил только это: ...

Описать шаблонную функцию в cpp-файле - C++
файл h template &lt; class T &gt; class B_tree { private: struct T_node { friend class B_tree; T val;

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2013, 12:25
Привет! Вот еще темы с ответами:

Шаблонная функция: в файле .h или .cpp - C++
Всем доброго времени суток... Начал читать про шаблоны, появились вопросы... 1. Как мне вывести реализацию addFix в cpp файл(мог...

Как реализовать подкласс в cpp файле? - C++
Здравствуйте, есть 3 header. #ifndef WORKERS_H_INCLUDED #define WORKERS_H_INCLUDED #include &lt;string&gt; class Workers...

Inline методы класса в cpp-файле - C++
Добрый день. Будут ли inline методы также компилироваться, если их тела перенести в cpp-файл? Иногда inline методы невозможно записать...

Шаблонные методы шаблонного класса в cpp-файле - C++
Есть класс-шаблон Map. В нем обьявленны несколько шаблонных методов forEach. template&lt;typename K, typename V&gt; class Map : public...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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