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

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

Войти
Регистрация
Восстановить пароль
 
SWINka88
0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 4
13.12.2013, 12:45     Ссылка на неразрешенный внешний символ #1
Добрый день всем! Помогите пожалуйста студенту, не пойму, то ли лыжи не едут, то ли май месяц на дворе, первая лаба по ООП, подучил теорию, думаю щас ворвусь, а в конце уже пишет такие матюки, я так понял ошибка в файле 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
5284 / 4803 / 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
5284 / 4803 / 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     Ссылка на неразрешенный внешний символ
Ответ Создать тему
Опции темы

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