Форум программистов, компьютерный форум 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; подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
30.09.2012, 18:51     Инициализация укзателей в классе
ну разница есть.
всякие функции работы со строками обычно не ожидают что им нуль подсунут. у автора книги этого не случится. потому что всегда под строки выделяется массив и записывается нолик. тем самым строка есть, но она нулевой длинны. у вас же не так. если попробовать взять какую-то строку, которую неинициализировали, то функция вернет нулевой указатель. это может быть проблемой, а может и нет. но удобнее все-таки, когда гарантируется возврат ненулевого указателя.

неплохо бы еще от копипаста избавится. в коде куча функций с одинаковым кодом:
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
 if (this->address_ == s)
  return;
 delete this->address_;
 this->address_ = this->dup(s);
 
 
можно было бы заменить на одну функцию:
void clone(const char* src, char*& target)
{
 if (src == target)
  return;
 delete target;
 target = dup(s);
}
 
 
и тогда все функции установки новой строки превращаются в однострочные:
void phone(const char* s)
{
  clone(s, phone_);
}
        
void address(const char* s)
{
  clone(s, target_);
}
 
Текущее время: 04:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru