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

Конструктор класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Среда программирования для Windows 7 http://www.cyberforum.ru/cpp-beginners/thread811508.html
Подскажите пожалуйста какую лучше всего среду разработки установить для операционной системы Windows 7 домашняя базовая 32 разрядная? Установил Visual Studio 2005, эта среда не всегда хорошо работает бывало после нажатия кнопок Build Solution и Start without debuggin вылетает окно Прекращена работа программы LetAp.exe и далее окно Программа LetAp.exe не работает. Подскажите в чём может быть...
C++ make_pair Уважаемые форумчане, как написать функцию, которая на вход принимает make_pair? Вызывать буду так: func( std::make_pair(2, 3) ); http://www.cyberforum.ru/cpp-beginners/thread811492.html
__asm вставки (процессор Pentium) C++
Пишу в вижуал Студии, делаю ассемблерные вставки, хочу вызывать си-процедуру, в которой тоже ассемблер - просто поменять значение одного регистра, не хочу никаких стеков, ОЗУ и прочего. При выходе похоже не восстанавливается из стека адрес возврата и программа вылетает. Подскажите, где ошибка? (Лишние куски кода убрал для краткости) unsigned char expand_CL(void) { //unsigned char y; __asm{...
Генерация случайного числа больше нуля, но меньше единицы C++
Всем привет. Подскажите, как можно генерировать псевдослучайное число больше нуля, но меньше единицы. При этом количество цифр после точки должно быть от 16 до 18 включительно. Заранее всем спасибо.
C++ Исправить ошибки в связном списке http://www.cyberforum.ru/cpp-beginners/thread811474.html
Почти готовая лабораторка, но не хватает несколько деталей. Помогите решить проблему, пожалуйста! Задание : 1. Создание списка из файла. 2.Insert <елемент> n Вставка елемента в позицию n. 3. DELETE N Удаление елемента з N позиции. 4.CHANGE M N – Смена елементов M N . 5.DUMP Вывод в конечный файл . Все работает, но когда открываю текстовый файл со списком или отчетом, вместо элементов...
C++ Составить программу с аппроксимацией С пятой задачей помогите. В голову ничего не лезит подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
18.03.2013, 09:45     Конструктор класса
Похоже, что в данной задаче подразумевается работа с нуль-терминированными строками, АКА const char *.
Вот так более-менее корректно можно работать с такими строками.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <cstring>
#include <iostream>
 
class Person {
 public:
  Person(const char *name, const char *surname, const char *pesel)
    : name(strcpy(new char[strlen(name) + 1], name)),
    surname(strcpy(new char[strlen(surname) + 1], surname)),
    pesel(strcpy(new char[strlen(pesel) + 1], pesel)) {}
  Person(const Person &other)
    : name(strcpy(new char[strlen(other.name) + 1], other.name)),
    surname(strcpy(new char[strlen(other.surname) + 1], other.surname)),
    pesel(strcpy(new char[strlen(other.pesel) + 1], other.pesel)) {}
  Person &operator=(const Person &other) {
    if (this != &other) {
      setName(other.getName());
      setSurname(other.getSurname());
      setPesel(other.getPesel());
    }
    return *this;
  }
  const char *getName() const { return name; }
  const char *getSurname() const { return surname; }
  const char *getPesel() const { return pesel; }
  void setName(const char *name) {
    delete [] this->name;
    this->name = strcpy(new char[strlen(name) + 1], name);
  }
  void setSurname(const char *surname) {
    delete [] this->surname;
    this->surname = strcpy(new char[strlen(surname) + 1], surname);
  }
  void setPesel(const char *pesel) {
    delete [] this->pesel;
    this->pesel = strcpy(new char[strlen(pesel) + 1], pesel);
  }
  virtual ~Person() {
    delete [] name;
    delete [] surname;
    delete [] pesel;
  }
 private:
  char *name;
  char *surname;
  char *pesel;
};
 
std::ostream &operator<<(std::ostream &stream, const Person &person) {
  return stream << "Person{" <<
    "name='" << person.getName() << "'," <<
    "surname='" << person.getSurname() << "'," <<
    "pesel='" << person.getPesel() << "'}";
}
 
int main(int argc,char **argv)
{
  Person person("Alexy", "Nowak", "76052209940");
  std::cout << person << std::endl;
 
  // change surname
  person.setSurname("Pawlak");
  std::cout << person << std::endl;
  return 0;
}
 
Текущее время: 00:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru