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

Передача указателя на строку методу класса - C++

Восстановить пароль Регистрация
 
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
26.07.2011, 14:21     Передача указателя на строку методу класса #1
после того как я изменил содержание указателя name на Nika Gamkrelidze, name в объекте не изменилось. наверное потому что новое значение расположенно в другой части памети, да? а есть ещё способы передачи строк с помощю указателей?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
class info {
        char * name, * phone;
    public :
        void set_name(char * n) {name=n;}
        void set_phone(char * p) {phone=p;}
        void show(void) {std::cout<<name<<", "<<phone;}
};
int main()
{
    char * name = "Ben Affleck";
    char * phone = "38-83-33";
    info ben;
    ben.set_name(name);
    ben.set_phone(phone);
    name = "Nika Gamkrelidze";
    ben.show()
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2011, 14:21     Передача указателя на строку методу класса
Посмотрите здесь:

Передача указателя функции класса A в класс B C++
Передача указателя на функцию-член класса C++
передача указателя C++
C++ Передача указателя
C++ Передача указателя в класс на объект другого класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
26.07.2011, 14:27     Передача указателя на строку методу класса #2
nikkka, char* это вам не string => используйте strcpy()
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
26.07.2011, 14:35     Передача указателя на строку методу класса #3
Цитата Сообщение от nikkka Посмотреть сообщение
name = "Nika Gamkrelidze";
после этой строчки name указывает уже в другое место, но info::name продолжает указывать на старое.
главное понять что ты не изменяешь name, ты просто ставишь указатель в другое место
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
26.07.2011, 14:41     Передача указателя на строку методу класса #4
В данном случае name является неконстантным указателем на константную облась памяти.
Вот так будет работать как задуманно:
C++
1
char name[] = "Ben Affleck";//лучше конечно зарезервировать некоторое кол-во байт
теперь name - константный указатель на неконстантную облась памяти.
Yandex
Объявления
26.07.2011, 14:41     Передача указателя на строку методу класса
Ответ Создать тему
Опции темы

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