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

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

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

Ссылка на неразрешенный внешний символ - C++

13.12.2013, 12:45. Просмотров 383. Ответов 4
Метки нет (Все метки)

Добрый день всем! Помогите пожалуйста студенту, не пойму, то ли лыжи не едут, то ли май месяц на дворе, первая лаба по ООП, подучил теорию, думаю щас ворвусь, а в конце уже пишет такие матюки, я так понял ошибка в файле CScreen.cpp и в мэйне, но это вследствие первой ошибки, может неправильно понимаю что-то.
нужно создать два класса, первый - класс данных (три атрибута - рост, вес и дата рождения, для последней сделал структурку SData, и она в файле general.h, помимо нее там ничего нет,поэтому ее приводить не буду. Второй класс - класс отображения данных на экран. Первый назвал CPeople, второй - CScreen.

Файл CPeople.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma once
#ifndef CPEOPLE_H
#define CPEOPLE_H
#include "general.h"
class CPeople
{
public:
    CPeople ();
    CPeople (int,float,SData);
    ~CPeople();
public:
    //зріст
    int iHeight;
    //вага людини 
    float iWeight;
    //дата народження
    SData iData;
};
#endif
Файл CScreen.h
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
#include "CPeople.h"
#include "general.h"
 
#pragma once
#ifndef CSCREEN_H
#define CSCREEN_H
 
class CPeople;
/**
@class CScreen
Даний клас слугує для відображення полів екземпляра класа People
*/
class CScreen
{
public:
///конструктор класа
CScreen();
 
///Метод Show для виведення на екран полів об'єкта класу CPeople
///@param in передача екземпляра класу CPeople
void Show(CPeople aIn);
///Деструктор класа CScreen
~CScreen();
};
 
#endif
Файл CPeople.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "CPeople.h"
#include "general.h"
 
CPeople::CPeople()
{}
 
///Конструктор з параметрами для заповнення полів об'єкту
///@param aHeight зріст людини
///@param aWeight вага людини
///@param aData дата народження
 
CPeople::CPeople(int aHeight, float aWeight, SData aData)
{
    iHeight = aHeight;
    iWeight = aWeight;
    iData = aData;
}
 
//Деструктор
CPeople::~CPeople()
{}
Файл CScreen.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
#include "CScreen.h"
#include "CPeople.h"
#include "general.h"
#include <iostream>
using namespace std;
///конструктор класа
CScreen::CScreen()
{
}
///деструктор класа
CScreen::~CScreen()
{}
///Метод для виведення на екран полів об'єкта класу CPeople
///@param in передача ексземпляра класу CPeople
void CScreen::Show(CPeople aIn)
{
    //виведення зросту
cout<<"Height = "<<aIn.iHeight<<std::endl;
    //виведення ваги
cout<<"Weight = "<<aIn.iWeight<<std::endl;
    //виведення дати народження через крапку
cout<<"DateOfBorn = "<<aIn.iData.SDday<<"."<<aIn.iData.SDmonth<<"."<<aIn.iData.SDyear<<std::endl;
}
Ну и наконец, main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "CScreen.h"
#include "general.h"
#include "CPeople.h"
#include <Windows.h>
 
int main ()
{
    CPeople aIn;
    //задання дати народження для першої людини
    SData iData1 = {30,06,1995};
    //створення екземпляра класса CPeople
    CPeople CPeople1 (192, 89, iData1);
    //створення екземпляра класса CScreen
    CScreen CScreen1 ;
    //виведення полів об'єкту CScreen1 на екран 
    CScreen1.Show (CPeople1);
 
    system("pause");
    return 0;
}
Заранее всем спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 12:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ссылка на неразрешенный внешний символ (C++):

Ссылка на неразрешенный внешний символ - C++
Приветствую. Проблема - при компиляции появляется ошибка вида: error LNK2019: ссылка на неразрешенный внешний символ &quot;int __cdecl...

Ссылка на неразрешенный внешний символ - C++
Базовый класс - class area_cl{ public: int a,b; double height; //высота double wight; ...

Ссылка на неразрешенный внешний символ - C++
error LNK2019: ссылка на неразрешенный внешний символ &quot;public: class LogProb __thiscall transpair_model4::...

Ссылка на неразрешенный внешний символ - C++
Строка 36 PathStripToRoot(szRoot); Вызывает ошибки: Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ...

Ссылка на неразрешенный внешний символ - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #define n 5 void InKeyboard(int a) {int i,j; printf(&quot;Vvedite...

Ссылка на неразрешенный внешний символ - C++
Разбил 3 работающих класса на .h и .cpp файлы. List: шаблонный список. Никаких других классов не включает. Material: Включает только...

4
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.12.2013, 13:11 #2
Файл CScreen.h
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
#include "CPeople.h"
//#include "general.h"
 
#pragma once
#ifndef CSCREEN_H
#define CSCREEN_H
 
//class CPeople;
/**
@class CScreen
Даний клас слугує для відображення полів екземпляра класа People
*/
class CScreen
{
public:
///конструктор класа
CScreen();
 
///Метод Show для виведення на екран полів об'єкта класу CPeople
///@param in передача екземпляра класу CPeople
void Show(CPeople aIn);
///Деструктор класа CScreen
~CScreen();
};
#endif
Файл CPeople.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "CPeople.h"
//#include "general.h"
 
CPeople::CPeople()
{}
 
///Конструктор з параметрами для заповнення полів об'єкту
///@param aHeight зріст людини
///@param aWeight вага людини
///@param aData дата народження
 
CPeople::CPeople(int aHeight, float aWeight, SData aData)
{
    iHeight = aHeight;
    iWeight = aWeight;
    iData = aData;
}
 
//Деструктор
CPeople::~CPeople()
{}
Файл CScreen.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
#include "CScreen.h"
//#include "CPeople.h"
//#include "general.h"
#include <iostream>
using namespace std;
///конструктор класа
CScreen::CScreen()
{
}
///деструктор класа
CScreen::~CScreen()
{}
///Метод для виведення на екран полів об'єкта класу CPeople
///@param in передача ексземпляра класу CPeople
void CScreen::Show(CPeople aIn)
{
    //виведення зросту
cout<<"Height = "<<aIn.iHeight<<std::endl;
    //виведення ваги
cout<<"Weight = "<<aIn.iWeight<<std::endl;
    //виведення дати народження через крапку
cout<<"DateOfBorn = "<<aIn.iData.SDday<<"."<<aIn.iData.SDmonth<<"."<<aIn.iData.SDyear<<std::endl;
}
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "CScreen.h"
//#include "general.h"
//#include "CPeople.h"
#include <Windows.h>
 
int main ()
{
    CPeople aIn;
    //задання дати народження для першої людини
    SData iData1 = {30,06,1995};
    //створення екземпляра класса CPeople
    CPeople CPeople1 (192, 89, iData1);
    //створення екземпляра класса CScreen
    CScreen CScreen1 ;
    //виведення полів об'єкту CScreen1 на екран 
    CScreen1.Show (CPeople1);
 
    system("pause");
    return 0;
}
1
SWINka88
0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 4
13.12.2013, 13:22  [ТС] #3
alsav22, спасибо огромное! На будущее, я так понял, если я пишу
C++
1
#pragma once
, то не нужно потом к каждому из файлов эти .h файлы подключать?
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.12.2013, 16:24 #4
#pragma once тут вообще лишнее, достаточно и #ifndef #define #endif. Скорее вего, проблема была из-за того .h файла, который вы не показали (general.h). Там, наверное, не было #ifndef #define #endif.
1
SWINka88
0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 4
13.12.2013, 19:39  [ТС] #5
Ясно,спасибо еще раз)
0
13.12.2013, 19:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2013, 19:39
Привет! Вот еще темы с ответами:

Ссылка на неразрешенный внешний символ - C++
Identification_Organisation.h: #pragma once #include&lt;string&gt; using namespace std; class Main_Organisation { int...

Ссылка на неразрешенный внешний символ - C++
Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ &quot;public: struct EQUIPMENT_ESSENCE * __thiscall...

Ссылка на неразрешенный внешний символ - C++
Здравствуйте. Пробую сделать что-то вроде map. Ошибка при создании объекта. #pragma once #include &lt;iostream&gt; template &lt;typename...

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


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

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

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