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

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

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

Не получается получить данные из массива - C++

25.08.2016, 16:28. Просмотров 165. Ответов 2
Метки нет (Все метки)

person.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#pragma once
 
class Person 
{   
public: 
    Person(); 
    Person(char *data_name); 
    ~Person(); 
    
    char *get_name(); 
    void Print(); 
 
private: 
    char *name; 
    
};
person.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
37
38
39
40
41
#define _CRT_SECURE_NO_WARNINGS
#include <cstdlib>
#include <cstring>
#include <iostream>
#include "person.h"
using namespace std;
 
 
Person::Person() 
{
    name = new char('\0'); 
    
}
 
 
Person::Person(char *data_name) 
{
    name = new char[strlen(data_name) + 1]; 
    strcpy(name, data_name); 
}
 
 
Person::~Person() 
    {
        delete name; 
    }
 
 
char *Person::get_name() 
{
    return name; 
}
 
 
 
void Person::Print() 
{
    
    cout << "Name: " << get_name() << endl; 
    
}

group.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "person.h"
 
 
class Group
{
public:
    Group(int n);
    ~Group();
 
    void Print(); 
    int Size();
    void PutPerson(int i, Person& man);
    Person& GetPerson(int i);
    
 
private:
    int num;
    Person* person;
};

group.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
37
38
39
40
#include "group.h"
 
Group::Group(int n)
{
    num = n;
    person = new Person[num];
 
}
 
 
Group::~Group()
{
    delete[] person;
 
}
 
void Group::Print()
{
    for (int i = 0; i < num; i++) {
 
        GetPerson(i).Print();
            
    }
}
 
 
int Group::Size()
{
    return num;
}
 
void Group::PutPerson(int i, Person& man)
{
    person[i] = man;
}
 
Person& Group::GetPerson(int i)
{
    return person[i];
}


main.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
#include <cstdlib>
#include <string.h>
#include <iostream>
#include "person.h"
#include "group.h"
 
 
int main(int argc, char *argv[])
{   
    
 
    char name[5][25] = {"IVAN"};
    
    Group group(1);
 
 
    for (int i = 0; i < group.Size(); i++)
    {
        Person qwert(name[i]);
        group.PutPerson (i, qwert);
    }
 
    group.Print();
 
 
    system("pause");
    return 0;
}
Есть класс Person, который содержит массив name.
В файле person.cpp реализую конструктор с параметром name.
Создаю функцию get_name с помощью которой буду возвращать name.
И создаю функцию Print с помощью которой вывожу name на экран.
Затем в group.cpp создаю класс Group, который содержит массив объектов Person.
В файле group.cpp создаю функцию Size с помощью которой возвращаю размер массива, функцию PutPerson c помощью которой заношу данные в массив, функцию GetPerson с помощью которой возвращаю данные из массива и функцию Print с помощью которой вывожу данные на экран.
В функции Print применяю функцию Print для объекта Person.
В файле main.cp определяю массив char name[5][25] = {"dfdfdf"};
Затем с помощью функции PutPerson заношу данные в массив.
Затем вывожу данные на экран с помощью функции Print.
Вместо IVAN получаю каракули.
Где может быть ошибка?
Миниатюры
Не получается получить данные из массива  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2016, 16:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не получается получить данные из массива (C++):

Не получается ограничить данные, вводимые пользователем - C++
// 4.cpp: Пишет ошибку: the variable being initialized; // #include &quot;stdafx.h&quot; using namespace std; int _tmain() {float a; ...

Не получается изменить данные в бинарном файле - C++
Здравствуйте. Мучаюсь, не пойму как сделать чтобы изменить данные. Программа обращается к файлу с базой (структуре).В структуре счет,...

Функция с указателем на void** не получается вернуть данные? - C++
Здорова! Есть код: #include &lt;iostream&gt; using std::cout; struct IMotion { virtual int&amp; get_val()=0; };

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

Не получается получить массив, заполненный случайными числами - C++
Помогите, пожалуйста! Нужно заполнить массив случайными числами и поменять местами первый элемент и максимальный. Не получается заполнить...

Внедрение DLL: Не получается вытащить данные из listview чужой программы. - C++
В общем ситуация такая. Есть чужая программа, в ней элемент управления(ЭУ) похож на listview, но его класс отличается от стандартного. В...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nd2
2210 / 1782 / 620
Регистрация: 29.01.2016
Сообщений: 5,715
25.08.2016, 16:48 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Распространенные ошибки
John Prick
778 / 711 / 131
Регистрация: 27.07.2012
Сообщений: 2,043
Завершенные тесты: 3
25.08.2016, 16:48 #3
Цитата Сообщение от ivret Посмотреть сообщение
Где может быть ошибка?
У Person нет конструктора копирования и копирующего присваивания, который должен скопировать передаваемой ему имя.

ПС. Да и вообще он некорректен.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2016, 16:48
Привет! Вот еще темы с ответами:

Не получается получить данные из таблицы - MySQL
Посылаю запрос SELECT `Key` FROM `players` WHERE `Name` = 'Takeshi_Kitano' в ответ приходит либо просто буква &quot;я&quot; либо тоже что я...

Почему не получается получить данные из БД? - PHP
Что я делаю не так??? как правильно сделать выборку??? В БД есть 2 одинаковые таблицы tab1 и tab2 нужно если ip из таблицы tab2 совпадают...

Не получается получить данные из базы данных - Java БД
Использую Netbeans и базу данных postgreSQL. Соединение установил все работает, но при запросах в базу данных выдает ошибку ...

Получить определенные данные из массива - PHP
Код: print_r( $attachments ); Выдает такой вот результат Вопрос: как вывести в цикле отмеченные параметры ID?


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

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

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