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

Инициализация укзателей в классе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Генерация чисел. Пуассон. Код не фурычит http://www.cyberforum.ru/cpp-beginners/thread660926.html
Доброго времени суток. Господа, кому несложно покопаться в коде, помогите понять, где тут ошибки? Программа запускается, число выборки ввожу и всё, вылетает. Я в этом деле нуб, так что буду рад...
C++ В заданной строке удалить заданную подстроку, сколько бы раз она не встречалась Ребят, помогите разобраться. Стоит задача создать программу со строками, string.h желательно не использовать. В заданной строке удалить заданную подстроку, сколько бы раз она не встречалась. Вот... http://www.cyberforum.ru/cpp-beginners/thread660908.html
Метод многих поверхностей C++
Подскажите, пожалуйста, где можно почитать о методе "многих поверхностей" (multi-surface method). С его помощью нужно будет построить сетку на области.
Задача на сортировку массива методом вставки на С++ C++
Помогите, пожалуйста, решить задачу. Отсортируйте по возрастанию методом вставки одномерный целочисленный массив, введенный с клавиатуры. Выведите на экран исходный и отсортированный массивы....
C++ Система счисления - выводится лишний ноль http://www.cyberforum.ru/cpp-beginners/thread660867.html
Добрый день! Вопрос мой состоит в следующем: Много видел уже готовых программ по переводу чисел из одной системы в другую,но захотел сделать сова алгоритм. Я использую цикл do/while, считаю лучшим...
C++ что-то не то с функциями! #include <iostream> #include <conio.h> #include <math.h> #include <fstream> #include <iomanip> using namespace std; double n=1; double m=0,x=0,z=0,s=0,a=0,b=0,h=0,q=0,w=0,e=0,zz=0,p=0;... подробнее

Показать сообщение отдельно
moskitos80
61 / 61 / 10
Регистрация: 04.10.2011
Сообщений: 217
Завершенные тесты: 1

Инициализация укзателей в классе - C++

30.09.2012, 17:51. Просмотров 523. Ответов 6
Метки (Все метки)

Всем привет читаю книгу Пабло Халперна "Стандарная библиотека С++ на примерах". Там, в качестве обучения читателю предлагается пройти процесс разработки и реализации некоего приложения - записной книжки с использованием STL. Вопрос касается инициализации указателей на массивы строк, и удаление их.
В общем, есть некий класс, автор его реализовал примерно так (это предварительная версия - дальше автор реализует этот класс с использованием типа std::string - кабы люди, не читавшие данной книги не подумали чего нехорошего про автора ):
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
class Address
{
    public:
        Address::Address()
        : lastname_     (new char[1])
        , firstname_    (new char[1])
        , phone_        (new char[1])
        , address_      (new char[1])
        {
            this->lastname_[0]  = '\0'; 
            this->firstname_[0] = '\0'; 
            this->phone_[0]     = '\0';
            this->address_[0]   = '\0';
        }
        ~Address()
        {
            delete [] this->firstname_;
            delete [] this->lastname_;
            delete [] this->phone_;
            delete [] this->address_;
        }
        
        //  . . . Много другого кода . . .
        
    private:
        char *lastname_;
        char *firstname_;
        char *phone_;
        char *address_;
};
А я (только изучаю С++), не подглядывая в реализацию в книжке, но представляя, что нужно сделать, реализовал его вот так:
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
class Address
{
    public:
        Address()
        : lastname_ (NULL)
        , firstname_(NULL)
        , phone_    (NULL)
        , address   (NULL)
        {
            /* пусто */
        }
        ~Address()
        {
            delete this->firstname_;
            delete this->lastname_;
            delete this->phone_;
            delete this->address_;
        }
        
        //  . . . Много другого кода . . .
        
    private:
        char *lastname_;
        char *firstname_;
        char *phone_;
        char *address_;
};
Вопрос в том, правильно ли я работаю с указателями? - Подозреваю, что нет. И какие ошибки я допускаю в данном случае?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru