Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с областью видимости класса 
V
    Опции темы
_RIKOSHET_
Дата 24.7.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.7.2007

Репутация: нет
Всего: нет



У меня проблема с реализацией класса, вот:

Код


/////   new1.h    /////
class N
{
public: 
    void deal();
};



/////   new2.cpp    /////
#include <stdio.h>
#include <conio.h>
#include "new1.h"

void N::deal()
{
    printf("deal");
}


/////   new.cpp    /////
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include "new1.h"

void main()
{
    N f;
    f.deal();
}


При запуске выдает 2 ошибки и я никак не могу понять в чем дело. 
Подскажите что не так.

Ошибка    1    error LNK2019: unresolved external symbol "public: void __thiscall N::deal(void)" (?deal@N@@QAEXXZ) referenced in function _main    new.obj

Ошибка    2    fatal error LNK1120: 1 unresolved externals    C:\Documents and Settings\Артур\Мои документы\Visual Studio 2005\Projects\new\Debug\new.exe    1


Все файлы в одной папке.

PM MAIL   Вверх
Daevaorn
Дата 24.7.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(_RIKOSHET_ @  24.7.2007,  18:31 Найти цитируемый пост)
Все файлы в одной папке.

и в одном проекте?
PM MAIL WWW   Вверх
_RIKOSHET_
Дата 24.7.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.7.2007

Репутация: нет
Всего: нет



Daevaorn,  ну конечно!!!
компилятор - VS2005
PM MAIL   Вверх
Programister0
Дата 24.7.2007, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 28.5.2007

Репутация: нет
Всего: нет



возможно в stdafx.h что то лишнее прописано
попробуй убери эту строчку
#include "stdafx.h" 
и проверь включён ли в проект new2.cpp. 

PM MAIL WWW ICQ Skype   Вверх
Daevaorn
Дата 24.7.2007, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(_RIKOSHET_ @  24.7.2007,  18:58 Найти цитируемый пост)
ну конечно!!!

тогда сходи в церковь, т.к. всё должно нормально собираться. а лучше проверь,действительно ли new2.cpp подключен к проекту
PM MAIL WWW   Вверх
Programister0
Дата 24.7.2007, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 28.5.2007

Репутация: нет
Всего: нет



без 
#include "stdafx.h" 
у меня все работает
PM MAIL WWW ICQ Skype   Вверх
boriska
Дата 24.7.2007, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 7.12.2006
Где: kharkov

Репутация: нет
Всего: нет



Может нужно подключить stdafx.h в new2.cpp
PM MAIL ICQ   Вверх
_RIKOSHET_
Дата 24.7.2007, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 21.7.2007

Репутация: нет
Всего: нет



Упс - а ведь действительно не был подключен.
 smile  smile  smile  smile  smile  smile 
PM MAIL   Вверх
FiMa1
Дата 25.7.2007, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 23.9.2006

Репутация: 5
Всего: 6



В stdafx.h следует включать часто используемые, но редко изменяемые (редактируемые) файлы. Начальное его содержимое:
Код
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <stdio.h>
#include <tchar.h>
// TODO: reference additional headers your program requires here

Файл stdafx.cpp ответственен за создание перекомпилированных заголовков (precompiled headers), он содержит единственную строку #include "stdafx.h".
Файлы, подключенные через stdafx.h компилируются один раз при первой компиляции, а в последующем будут обрабатываться в уже скомпилированном виде.
Если проект изначально был создан с использованием прекомпилированных заголовков и затем в уже существующий проекту добавлялись новые файлы, то 
* Если добавляемый файл не нужно компилировать каждый раз (к примеру, файл создан кем-то другим и его не нужно редактировать), то необходимо подключить в него stdafx.h выше подключения всех остальных файлов, добавить в самый верх данного модуля.
* В противном случае, можно отключить опцию Использование Прекомпилированных заголовков (Create/Use Precompiled Headers). Project::Properties::Precompiled Header::Create/Use Precompiled Headers->Not Using Precompiled Headers.
Более подробно смотрим здесь:
http://www.cygnus-software.com/papers/prec...ledheaders.html
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0829 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.