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

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

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

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

13.12.2013, 12:45. Просмотров 347. Ответов 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;
}
Заранее всем спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 12:45     Ссылка на неразрешенный внешний символ
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5413 / 4809 / 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;
}
SWINka88
0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 4
13.12.2013, 13:22  [ТС]     Ссылка на неразрешенный внешний символ #3
alsav22, спасибо огромное! На будущее, я так понял, если я пишу
C++
1
#pragma once
, то не нужно потом к каждому из файлов эти .h файлы подключать?
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.12.2013, 16:24     Ссылка на неразрешенный внешний символ #4
#pragma once тут вообще лишнее, достаточно и #ifndef #define #endif. Скорее вего, проблема была из-за того .h файла, который вы не показали (general.h). Там, наверное, не было #ifndef #define #endif.
SWINka88
0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 4
13.12.2013, 19:39  [ТС]     Ссылка на неразрешенный внешний символ #5
Ясно,спасибо еще раз)
Yandex
Объявления
13.12.2013, 19:39     Ссылка на неразрешенный внешний символ
Ответ Создать тему
Опции темы

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