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

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

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

Массив объектов класса в другом классе (композиция). Компилятор ругается на конструктор - C++

06.12.2013, 22:01. Просмотров 672. Ответов 5
Метки нет (Все метки)

Суть задания: есть 1 класс надо создать 2-ой класс для работы с коллецией 1-го.

1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall student::student(void)" (??0student@@QAE@XZ) в функции "public: __thiscall studentsfun::studentsfun(int)" (??0studentsfun@@QAE@H@Z)
1>C:\Users\Danil\documents\visual studio 2012\САША\labaaa\lab6m\Debug\lab6m.exe : fatal error LNK1120: неразрешенных внешних элементов: 1

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include<conio.h>
using namespace std;
#include "student.h"
#include "studentsfun.h"
void main()
{ 
    studentsfun A();//работает (если след. строки нету)
    studentsfun AA(5); //не  работает
}
student.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class student
{
public:
    student();
    student(char*,char*,char*,int, int, int,char*,char*,int);
    void show_student(void);
    ~student();
    
    
private:
    char name[20];
    char familia[20];
    char otchestvo[20];
    int dated;
    int datem;
    int datey;
    char adres[64];
    char faculty[20];
    int kurs;
};
studentsfun.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
//#include <locale.h>
 
class student; 
class studentsfun
{
    student *A;
public: 
    studentsfun(){};
    studentsfun(int N)
        
    {
        A=new student[N];
    };
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 22:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив объектов класса в другом классе (композиция). Компилятор ругается на конструктор (C++):

Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты? - C++
Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты?

Вызвать конструктор произвольного класса в другом классе - C++
Здравствуйте! Есть необходимость вызвать конструктор какого-либо класса в методе другого класса. Примерно так: class A{}; class B:...

Использование объектов класса в другом классе - C++
Пусть имеются 2 класса Snake и Food, а также 2 их объекта snake и food соответственно. food должен в одном из его методов работать со...

Массив элементов класса в другом классе - C++
Есть класс &quot;студент&quot; и &quot;группа&quot;. В группе есть массив студентов. Как из main использовать методы класса студент, через класс группа?...

Как создать массив объектов одного класса в другом, и как к ним обращаться? - C++
вот класс: #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; class File { private: char *name, *date; int ...

Объект класса в другом классе - C++
Здравствуйте! Недавно начал учить классы, прошу помогите мне. Мой написанный код не работает. Можете сказать, что с ним не так? ...

5
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.12.2013, 22:12 #2
ошибка линковки. функции объявлены, но хз где реализованы:
C++
1
2
3
4
 student();
 student(char*,char*,char*,int, int, int,char*,char*,int);
 void show_student(void);
 ~student();
0
shinarthas
0 / 0 / 0
Регистрация: 06.12.2013
Сообщений: 30
06.12.2013, 22:34  [ТС] #3
они реализованы в других cpp, но они мало интерестны.
но если это поможет делу вот:
student.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
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "student.h"
#include<stdio.h>
#include <iostream>
using namespace std;
student::student(char* name, char* familia, char* otchestvo, int d,int m,int y,char* adres,char *faculty,int kurs)
{
    strcpy_s(this->name,name);
    strcpy_s(this->familia,familia);
    dated=d;
    datem=m;
    datey=y;
    strcpy_s(this->otchestvo,otchestvo);
    strcpy_s(this->adres,adres);
    strcpy_s(this->faculty,faculty);
    this->kurs=kurs;
}
void student::show_student(void)
 
{
    cout<<"Name: "<<name<<endl;
    cout<<"Familia: "<<familia<<endl;
    cout<<"Otchestvo: "<<otchestvo<<endl;
    cout<<"Data: "<<dated<<"."<<datem<<"."<<datey<<"."<<endl;
    cout<<"Adres: "<<adres<<endl;
    cout<<"faculty: "<<faculty<<" kurs: "<<kurs<<endl<<endl;
}
student::~student()
    {
        /*
     delete name;
     delete familia;
     delete otchestvo;
     delete adres;
     delete faculty;
     */
    };
0
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
06.12.2013, 22:42 #4
Ну так а конструктор
C++
1
student();
где определение ?
1
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
06.12.2013, 22:42 #5
Цитата Сообщение от shinarthas Посмотреть сообщение
они реализованы в других cpp
Конструктор по умолчанию (без аргументов) не реализован.
1
shinarthas
0 / 0 / 0
Регистрация: 06.12.2013
Сообщений: 30
06.12.2013, 22:47  [ТС] #6
Прикольно. Теперь работает))
0
06.12.2013, 22:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2013, 22:47
Привет! Вот еще темы с ответами:

Создание класса в другом классе - C++
Приветствую всех. Уважаемые гуру, скажите можно ли создавать класс в теле друго класса? Причем создание &quot;внутреннего&quot; класса идет на...

Вызвать метод класса в другом классе - C++
Подскажите как мне вызвать метод класса в другом классе ?

Создание объекта класса в другом классе!!! - C++
//----------------------------------Address.h---------------------------------------------------- class Address { public: const...

Использование данных одного класса в другом классе - C++
Подскажите как сделать так что бы значения d1,d2 из первого класса можно было использовать во втором классе? #include &quot;stdafx.h&quot; ...


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

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

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