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

Работа с классами - C++

Восстановить пароль Регистрация
 
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
07.12.2013, 23:32     Работа с классами #1
Есть класс Person, который описывает имя, возраст, телефон и пол :
Потом надо поменять какую-нибудь информацию, например имя, что у меня сделать и не получается
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
class Person{   
        char *name;
        int age;
        int telNumber;
        char *pol;
public:
    Person(){     // инициализация переменных класса
        name=new char[40];
        name="Evgenyi Petrov";
        age=25;
        telNumber=80936523;
        pol=new char[7];
        pol="male";
    }
    void show(){  //вывод 
            cout<<name<<" "<<pol<<" "<<age<<" "<<telNumber<<endl;
    }
    void resetName(){               // вот не знаю как перезаписать инфо в переменной класса  
        char Name[40]="Denis Sidorov";
        name=Name;
    }
    int getName(){
        return *name;
    }
};
 
void main(){
    Person a;
    Person b;
    a.show();
    b.resetName();
    b.show();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2013, 23:32     Работа с классами
Посмотрите здесь:

Работа с классами C++
C++ Работа с классами.
C++ Работа с классами
Работа с классами C++
C++ Работа с классами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
07.12.2013, 23:44     Работа с классами #2
I love myguitar, вместо этого:

C++
name=Name;
используйте функцию strcpy:

C++
strcpy(name, Name);
Yanush
 Аватар для Yanush
154 / 150 / 44
Регистрация: 28.09.2013
Сообщений: 281
Завершенные тесты: 1
07.12.2013, 23:54     Работа с классами #3
Что-то типа этого

Кликните здесь для просмотра всего текста
class Person{
char *name;
int age;
int telNumber;
char *pol;
public:
Person(char *name, int age, int phone, char *sex){ // инициализация переменных класса
name=new char[40]; this->name = name;
name="Evgenyi Petrov";
age=25; this->age = age;
telNumber=80936523; this->telNumber = phone;
pol=new char[7];
pol="male"; this->pol = sex;
}
void show(){ //вывод
cout<<name<<" "<<pol<<" "<<age<<" "<<telNumber<<endl;
}
void resetName(char *newName){ // вот не знаю как перезаписать инфо в переменной класса
char Name[40]="Denis Sidorov";
name=Name; this->name = newName;
}
int char* getName(){
return *name;
}
};

void main(){
Person a("Evgenyi Petrov", 25, 223345, "male");
Person b("Evgenyi Petrov", 25, 223345, "male");
a.show();
b.resetName("Denis Sidorov");
b.show();
}
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
07.12.2013, 23:56     Работа с классами #4
вместо
char *name;

используем
std::string name;

и никаких проблем с памятью, копированием и прочими прелестями.

с другими строками поступаем так же.
Yandex
Объявления
07.12.2013, 23:56     Работа с классами
Ответ Создать тему
Опции темы

Текущее время: 14:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru