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

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

Войти
Регистрация
Восстановить пароль
 
ssergius
6 / 6 / 2
Регистрация: 10.03.2013
Сообщений: 48
#1

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

22.11.2014, 22:33. Просмотров 163. Ответов 3
Метки нет (Все метки)

Здравствуйте. Проблема такого рода:
из класса 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/v625824871/a4c5/PYNqUI3N8tU.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*, возможно где-то ошибка при выделении памяти/разрушении. Не могу понять. Будьте добры помогите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2014, 22:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пишет мусор в переменную класса, использование strcpy (C++):

Как получить private переменную класса, функцей членом другого класса - C++
Игра змейка: Есть класс поле в котором содержится размеры поля: class field { private: int FIELD_START; int...

Реализовать подсчет количества объектов класса, используя статическую переменную-член класса - C++
как реализовать подсчет количества объектов класса (используя статическую переменную-член класса), а также статическую функцию, которая...

Использование в качестве поля класса указатель на объект другого класса - C++
Ошибка в названии - &quot;указателЯ&quot; Вот, пытаюсь освоить ООП (пока только учусь): создаю класс person (человек) и car (модель машины). ...

Использование объекта одного класса при создании нового класса - C++
Добрый вечер. У меня такая проблема. Есть готовый класс L2 - список, на его основе нужно создать дек. Я поступил так: в приватной части...

Использование перегруженного оператора ввода/вывода в поток базового класса для объекта производного класса - C++
Здравствуйте! Можно ли использовать перегруженный оператор ввода/вывода в поток из базового класса для объекта производного класса, если...

Передать переменную из класса в класс - C++
Добрый день, следующая задача передать переменную из класса А в класс В class_a.h #ifndef CLASS_A_H #define CLASS_A_H ...

3
MrGluck
Модератор
Эксперт CЭксперт С++
7488 / 4603 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
22.11.2014, 22:35 #2
не strcmp, а strcpy
0
ssergius
6 / 6 / 2
Регистрация: 10.03.2013
Сообщений: 48
22.11.2014, 22:55  [ТС] #3
Пардон) Я лол)
написал strcmp сравнение строк вместо strcpy закрываем тему! Люблю cyberforum!

Добавлено через 18 минут
Удалите, пожалуйста, этот стыд-позор)))
0
MrGluck
Модератор
Эксперт CЭксперт С++
7488 / 4603 / 691
Регистрация: 29.11.2010
Сообщений: 12,589
22.11.2014, 23:53 #4
Цитата Сообщение от ssergius Посмотреть сообщение
Удалите, пожалуйста, этот стыд-позор)))
Темы по запросам пользователей не закрываются и не удаляются.
0
22.11.2014, 23:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2014, 23:53
Привет! Вот еще темы с ответами:

Изменить переменную методами класса - C++
Здравствуйте. У меня есть класс и в нем несколько функций. Class A { int x,r,color; A(int xx=1,int rr=1) { x=xx; ...

Ссылка на переменную другого класса - C++
Всем привет ! Хочу создать ссылку на переменную класса Animation. class PLAYER { public: .... float...

Изменить переменную класса через указатель - C++
В данном примере я получаю указатель на переменную объекта. Я хочу изменить указатель, т.е. не само значение переменной на которую...

Как проинициализировать структурную переменную в конструкторе класса? - C++
К примеру у меня есть переменная p типа POINT. Такую запись он считает нелегальной: private: POINT p; public: MyClass()...


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

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

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