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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Генерация чисел. Пуассон. Код не фурычит http://www.cyberforum.ru/cpp-beginners/thread660926.html
Доброго времени суток. Господа, кому несложно покопаться в коде, помогите понять, где тут ошибки? Программа запускается, число выборки ввожу и всё, вылетает. Я в этом деле нуб, так что буду рад самой жесткой критике. Само задание выглядит примерно так: Генерац-я псевдо чисел. Неуниверсальный метод. Пуассоновское распределение, где М=2. входная характеристика программы: объем выборки...
C++ В заданной строке удалить заданную подстроку, сколько бы раз она не встречалась Ребят, помогите разобраться. Стоит задача создать программу со строками, string.h желательно не использовать. В заданной строке удалить заданную подстроку, сколько бы раз она не встречалась. Вот мой код: #include <iostream> #include <stdio.h> #include <string.h> #include "stdafx.h" #include <conio.h> http://www.cyberforum.ru/cpp-beginners/thread660908.html
Метод многих поверхностей C++
Подскажите, пожалуйста, где можно почитать о методе "многих поверхностей" (multi-surface method). С его помощью нужно будет построить сетку на области.
Задача на сортировку массива методом вставки на С++ C++
Помогите, пожалуйста, решить задачу. Отсортируйте по возрастанию методом вставки одномерный целочисленный массив, введенный с клавиатуры. Выведите на экран исходный и отсортированный массивы. (Сортировка вставками: пусть первые k элементов массива уже упорядочены по неубыванию. Берется (k+1)-й элемент и размещается среди первых k элементов так, чтобы упорядоченными оказались уже k+1 первых...
C++ Система счисления - выводится лишний ноль http://www.cyberforum.ru/cpp-beginners/thread660867.html
Добрый день! Вопрос мой состоит в следующем: Много видел уже готовых программ по переводу чисел из одной системы в другую,но захотел сделать сова алгоритм. Я использую цикл do/while, считаю лучшим вариантом(если не так поправьте, пожалуйста) Вот что получилось: a - вводимое число; b - остаток от деления; cin >> a; a = a/2; b = a%2;
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; ifstream in; ofstream out; подробнее

Показать сообщение отдельно
moskitos80
 Аватар для moskitos80
39 / 39 / 0
Регистрация: 04.10.2011
Сообщений: 128
30.09.2012, 17:51     Инициализация укзателей в классе
Всем привет читаю книгу Пабло Халперна "Стандарная библиотека С++ на примерах". Там, в качестве обучения читателю предлагается пройти процесс разработки и реализации некоего приложения - записной книжки с использованием 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_;
};
Вопрос в том, правильно ли я работаю с указателями? - Подозреваю, что нет. И какие ошибки я допускаю в данном случае?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru