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

Пишет мусор в переменную класса, использование strcpy - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция которая ищет наибольший элемент массива http://www.cyberforum.ru/cpp-beginners/thread1308026.html
#include <iostream> using namespace std; void rev_print(int n) { if (n > 0) { cout << n - (n / 10) * 10; n /= 10; rev_print(n); }
C++ Узнать элемент enum по значению Вот дан какой нибудь enum как определить ключ (имя переменной) по значению? http://www.cyberforum.ru/cpp-beginners/thread1308025.html
C++ Арифметическая и геометрическая последовательности
Разработать программу, которая в последовательности целых чисел находит самую длинную подпоследовательность являющуюся арифметической или геометрической прогрессией. Предусмотреть ввод исходной последовательности с клавиатуры, чтение ее из файла или формирование программой случайным образом.
Автоматически построить дороги из единиц между "городами" C++
Подскажите как такое можно сделать: Нужно задать координаты точек (городов), значение которых в масиве -1, и их же вывело на экран и после, что бы между автоматически построились дороги из единичек (1) не могу дадуматься,
C++ Удалить из стека n элементов, начиная с k. Используя pop, push и временный стэк http://www.cyberforum.ru/cpp-beginners/thread1308018.html
Доброго времени суток. Имеется класс, описывающий стек на основе односвязного списка с головой. Всего две функции-члена: pop и push. Нужно с помощью этих функций удалить из стэка n элементов, начиная с k. Временные данные нельзя записывать в массив или структуру. Только в еще один стек. Как это все сделать? Алгоритм хотя бы... Спасибо.
C++ Частота распределения слов в тексте Помогите пожалуйста. Заранее огромное спасибо. Разработать программу, которая читает текстовый файл и выводит частоту распределения длин слов текста. Имя читаемого файла запрашивается с клавиатуры. Знаками препинания в тексте пренебречь. подробнее

Показать сообщение отдельно
ssergius
6 / 6 / 2
Регистрация: 10.03.2013
Сообщений: 48
22.11.2014, 22:33     Пишет мусор в переменную класса, использование strcpy
Здравствуйте. Проблема такого рода:
из класса studentLogic из некой функции (метода) вызываю:

C++
1
2
3
4
5
6
7
    studentcl NewStudent("login", "sdf", "sdsdf", 12);
    
    List<studentcl> StudentList;
 
    StudentList.insertAtFront(NewStudent); //добавляем в стек
 
    StudentList.print();
Конструкторы копирования и конструктор:

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
studentcl::studentcl (char* loginBuff, char* firstNameBuff, char* lastNameBuff, int ageBuff) {
 
    login = new char[strlen(loginBuff)+1];
    strcmp (login, loginBuff);
 
    firstName = new char[strlen(firstNameBuff)+1];
    strcmp (firstName, firstNameBuff);
 
    lastName = new char[strlen(lastNameBuff)+1];
    strcmp (lastName, lastNameBuff);
 
    age = ageBuff;
 
    cout << "Констр" << endl;
 
}
 
studentcl::studentcl (const studentcl &student) {
 
    login = new char[strlen(student.login)+1];
    strcmp (login, student.login);
 
    firstName = new char[strlen(student.firstName)+1];
    strcmp (firstName, student.firstName);
 
    lastName = new char[strlen(student.lastName)+1];
    strcmp (lastName, student.lastName);
 
    age = student.age;
 
    cout << "Констр копир" << endl;
 
}
Это все class studentcl

сам класс:

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
42
43
44
45
46
47
#include <iostream>
 
using namespace std;
 
 
class studentcl {
 
    private:
        char* login;
        char* firstName;
        char* lastName;
        int age;
 
    public:
 
        studentcl() {
            login = NULL;
            lastName = NULL;
            firstName = NULL;
        }
 
        studentcl(char*, char*, char*, int);
        studentcl::studentcl(const studentcl &student);
        
        ~studentcl() {
            if ( login != NULL && lastName != NULL && firstName != NULL) {
                delete [] login;
                delete [] lastName;
                delete [] firstName;
            } else
                cout << "13\n";
        }
 
        /* GET методы */
        char* getLogin();
        char* getfirstName();
        char* getlastName();
        int getAge();
        
        /* SET методы */
        void setfirstName(char* );
        void setlastName(char* );
        void setAge(int );
 
        friend ostream& operator <<(ostream &os, const studentcl &student);
 
};
так же имеется реализованный связанный список (по дейтелу ,поэтому в том что там ошибка я не думаю).

Изображение: http://cs540109.vk.me/c625824/v62582...YNqUI3N8tU.jpg

Пишет мусор в переменную.

так же чтобы работал вывод, перегрузил оператор <<

C++
1
2
3
4
5
6
7
ostream& operator <<(ostream &os, const studentcl &student) {
 
    cout << "LAL";
    os<<"\n\t"<< student.lastName << endl;
    return os;
 
}
Хочу отметить, что с int все работает, значит нужно работать с char*, возможно где-то ошибка при выделении памяти/разрушении. Не могу понять. Будьте добры помогите, пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru