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

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

Войти
Регистрация
Восстановить пароль
 
a91
4 / 4 / 0
Регистрация: 03.04.2009
Сообщений: 190
#1

Не найдено обращение в классе - C++

10.02.2012, 16:23. Просмотров 336. Ответов 2
Метки нет (Все метки)

Здравствуйте!

У меня есть 3 файла (для наглядности загрузил их в архив):
- main.cpp - главный файл программы
- UFr.h - заголовочный файл модуля, в нем описан класс TFr
- UFr.cpp - исходный файл модуля, в нем определены функции класса

В исходном файле main.cpp создаю экземпляр класса, и вызываю конструктор (так как я предполагаю).
Но в процессе компиляции выдается ошибка [Linker error] undefined reference to `TFr::TFr(int, int)'
Я уже как только не перепробывал, ничего не могу сделать.
Я видимо неправильно создаю заголовочный файл.

Это как-то можно исправить?

UFr.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef UFR_H
#define UFR_H
 
class TFr
{
public:
    TFr (int a, int b);
    void setValue();
 
    int p; // p -
    int q; // q -
};
 
#endif
UFr.cpp
C++
1
2
3
4
5
6
7
8
9
#include "UFr.h"
 
TFr :: TFr(int a, int b)
{
}
 
void TFr :: setValue()
{
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdio>
#include <iostream>
#include <conio.h>
 
#include "UFr.h"
 
using namespace std;
 
int main()
{
    TFr f1(43, 432);
 
    cout << f1.p;
    cout << f1.q;
 
    getch();
    return 0;
}
 Комментарий модератора 
У вас всего лишь три небольших файла. К чему было закидывать их на форум архивом?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2012, 16:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не найдено обращение в классе (C++):

Обращение к функции в классе - C++
Здравствуйте! Хочу обратится к функции print в классе Data. Помогите // 11.cpp: определяет точку входа для консольного приложения. ...

Обращение к private полям в классе - C++
Здравствуйте! Возник еще один вопрос.Как можно обращаться к private полям класса во внешних функциях кроме как создания методов,которые...

Организовать обращение к элементу массива в классе - C++
Есть класс: class Graf { public: double **M; double MT; Graf(){}; ~Graf(){}; Graf(int n){

Обращение к структуре в классе с выделением памяти - C++
Добрый день уважаемые форумчане. Столкнулся с такой проблемой. Есть класс: class Components { struct comps{ // -- База компонентов ...

В классе инициализировать массив, в классе создать функцию вывода массива на экран - C++
Прошу помоши с выводом данных, которые содержаться в массиве, на экраy: Задача: В классе инициализировать массив, в классе создать...

Как обьявить переменную в одном классе и что бы ее было видно в дочернем классе - C++
У меня есть основной класс с названием Root один из его членов наследует дочерний класс SubRoot. Скажите как объявить, что бы один из...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
10.02.2012, 16:39 #2
VS 2010 - скомпилила и запустила без ошибок.
Был единственный ворнинг, да и тот связан с гетчем
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
10.02.2012, 17:01 #3
a91, если вы пользуетесь какой-либо средой программирования, то для того, чтобы компилятор увидел все нужные файлы и линкёр расставил ссылки, нужно не просто компилировать файл main.cpp, а создать отдельный проект и добавить в него все файлы программы. Если компилируете из командной строки, то компилятору в качестве входных файлов нужно указать все cpp-файлы. Пример компиляции вашей программы с помощью gcc:
Bash
1
g++ -pedantic main.cpp UFr.cpp -o prog
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2012, 17:01
Привет! Вот еще темы с ответами:

У меня класс B в классе A, а в классе B рекурсивная функция переопределения оператора "()", как её вызвать, не создавая явно объект класса B? - C++
#include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; //Вот главный класс class A{ public: A (){}; class...

Известны оценки по физике каждого ученика двух классов.Определить средниюю оценку в каждом классе.Количество учащихся в каждом классе одинаковое! - C++
Известны оценки по физике каждого ученика двух классов.Определить средниюю оценку в каждом классе.Количество учащихся в каждом классе...

Вывести сообщение, если не найдено ни одного совпадения - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; struct student { char fam; int godr, godp, os, progr,...

Вывести на экран слово, в котором найдено искомое буквосочетание - C++
Дана строка. Вывести на экран слово, в котором найдено искомое буквосочетание. Пытался делать через циклы, не используя множеств т.к. их...


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

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

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