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

Нужен совет по исправлению ошибки в функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ перегрузка операторов http://www.cyberforum.ru/cpp-beginners/thread765682.html
на примере класса Line не получается правильно и без ошибок перегрузить следующие операторы ==, <, !=, <<. с = и вроде справился, с остальными пока проблемы, кому не сложно помогите плз #include <iostream> #include<string.h> using namespace std; class Line { private: int max_length;
C++ Консольное приложение Qt. Ругается на 3-й, 4-й аргументы Добрый день. При запуске в Qt вылетает Disassembler, окошко назначение Segmentation fault Фрагмент кода int main(int argc, char *argv) { ..... //параметры, которые введет пользователь int t,n,k; int res; http://www.cyberforum.ru/cpp-beginners/thread765669.html
Алгоритм нахождения цифрового корня натурального числа C++
хочу сделать проверку числа что бы выводилось сообщение при большем числе не получается :( void zadanie_3() { signed long n; clrscr(); cout<<"\n vvedite chislo: "; cin>>n; if(n<0)
как наносить етот код в class и как работать c class C++
#include<stdio.h> #include<stdlib.h> #include<string.h> #define uzunligi 1000 #include<iostream.h> #include<conio.h> using namespace std; char * multiply(char ,char);
C++ шаблоны, стек http://www.cyberforum.ru/cpp-beginners/thread765643.html
Почему при удалении элементов не корректно работает программа, а именно начинает удалять не с вершины а со следующего элемента? #include <iostream> #include <locale.h> #include "stack.h" using namespace std; int main() { setlocale(LC_ALL,"Ukrainian");
C++ Run-Time Check Failure - 2 Приветствую уважаемое сообщество. Подскажите мне, пожалуйста, чем может вызываться указанная в теме ошибка (с следующей расшифровкой: stack around the variable 'mybuf' was corrupted) в следующем коде: #include <stdio.h> #include <iostream> #include <windows.h> using namespace std; int main() { подробнее

Показать сообщение отдельно
HERETIC
 Аватар для HERETIC
88 / 88 / 3
Регистрация: 10.10.2008
Сообщений: 607
Завершенные тесты: 1
18.01.2013, 19:00     Нужен совет по исправлению ошибки в функции
Помогите исправить ошибку в функции GetName. Все файлы прилагаю:
myclass.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
27
#ifndef MYCLASS_H
#define MYCLASS_H
 
class persona
{
private:
    char *name;
    int age;
    bool pol;
    static int count_object;
    static persona **list;
public:
    persona();
    persona(char *, int, bool);
    virtual ~persona();
    static void showList();
    virtual void showObject();
    void Add();
    static void clearList();
    void setName(char *);
    void setAge(int );
    void setPol(bool );
    char GetName();
    int GetAge();
    bool GetPol();
};
#endif
persona.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "myclass.h"
#include <iostream>
#include <cstring>
 
using namespace std;
 
persona ** persona::list = new persona *[100];
int persona::count_object=0;
 
persona::persona()
{
    name="Мазай";
    age=55;
    pol=true;
}
 
persona::persona(char *_name, int _age, bool _pol)
{
    name = new char[strlen(_name)+1];
    strcpy(name, _name);
    age=_age;
    pol=_pol;
}
 
persona::~persona()
{
    delete name;
}
 
void persona::Add()
{
    this->list[count_object]=this;
    count_object++;
}
 
void persona::showList()
{
    for(int i=0; i<count_object; ++i)
    {
        list[i]->showObject();
    }
}
 
void persona::showObject()
{
    
    std::cout << "Показываем информацию об объекте: " << std::endl;
    std::cout << "Имя: " << name << std::endl;
    std::cout << "Возраст: " << age << std::endl;
    std::cout << "Пол: " << pol << std::endl;
    std::cout << std::endl;
}
 
void persona::setName(char *_name)
{
    name=_name;
}
 
void persona::setAge(int _age)
{
    age=_age;
}
 
void persona::setPol(bool _pol)
{
    pol=_pol;
}
 
char persona::GetName()
{
    return *name;
}
 
int persona::GetAge()
{
    return age;
}
 
bool persona::GetPol()
{
    return pol;
}
 
void persona::clearList()
{
    for(int i=0; i< count_object;i++)
    {
        std::cout << "Delete: " << std::endl;
        list[i]->showObject();;
        delete list[i];
    }
    delete [] list;
}
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
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <conio.h>
#include "myclass.h"
using namespace std;
 
int main()
{
    setlocale(0, "Russian");
 
    persona *kolia = new persona("Коля", 12, true);
    kolia->Add();
 
    persona *Olia = new persona("Оля", 32, false);
    Olia->Add();
 
    persona *vasia = new persona();
    vasia->Add();
 
    char charpr;
    int intpr;
    bool boolpr;
 
    charpr=kolia->GetName();
    cout << "Проверка GetName " << charpr << endl;
    intpr=Olia->GetAge();
    cout << "Полверка GetAge " << intpr << endl;
    boolpr=vasia->GetPol();
    cout << "Проверка GetPol " << boolpr << endl;
 
    _getch();
 
    vasia->setName("Петя");
    vasia->setAge(44);
    vasia->setPol(true);
 
    persona::showList();
    persona::clearList();
    
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru