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

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

Войти
Регистрация
Восстановить пароль
 
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
#1

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

26.07.2011, 14:21. Просмотров 645. Ответов 3
Метки нет (Все метки)

после того как я изменил содержание указателя 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++ Передача указателя
Передача указателя в структуру C++
C++ Передача указателя в класс на объект другого класса
C++ Передача указателя на вектор в функцию
Передача указателя на начало списка C++
C++ Передача указателя по ссылке
C++ Передача указателя функции
C++ Передача указателя функции

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

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

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