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

Создать класс Человек, имеющий имя, возраст - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Файл и график функции http://www.cyberforum.ru/cpp-beginners/thread885454.html
Создать программу на borland c++ 3.1, обрабатывающую содержимое текстового файла экспериментальных данных с целью построения суточного хода критической частоты температуры (величина k- последний столбец). Нужны идеи по созданию т.е. как содержимое файла преобразовать в вещественную переменную.
C++ Определить временные характеристики работы программы Здраствуйте! Вот задание: На основе контейнера vector построить одномерный массив целых чисел. Выполнить операции ввода элементов в массив, последовательный поиск заданного элемента в массиве и вывод его номера, вывод массива на экран. Определить временные характеристики работы программы (суммарное время на выполнение каждого вида операции на примере с большим количеством сгенерированных... http://www.cyberforum.ru/cpp-beginners/thread885452.html
C++ Определить, являются ли точки заданного множества вершинами параллелограмма
Здравствуйте! Такое вот задание: Определить, являются ли точки заданного множества вершинами параллелограмма со сторонами, параллельными оси ОХ. Нужно было сделать с помощью наследования - я сделал, НО! потребовали, чтобы программа понимала, что это параллелограмм не зависимо от того, в каком порядке введены точки. Программа всё отлично считает, если ввести их по часовой или против часовой...
Ввод имени файла и FileExists C++
Всем привет! Ребят у меня такая проблема: нужно ввести имя файла заранее до начало работы с ним, но так не работает: void main() { system("chcp 1251"); system("cls"); cout << "Введите наименование файла:";
C++ предикат http://www.cyberforum.ru/cpp-beginners/thread885441.html
Здравствуйте, не могу понять что должна принимать функция в качестве предиката. Вот допустим контейнер vector, можете привести маленький пример sort() функции пожалуйста?
C++ Создание меню Попытался сделать меню для программы, но она почему то уходит в бесконечный цикл. Помогите плиз. #include <iostream> #include <conio.h> #include <cstdlib> using namespace std; // ôóíêöèÿ îïðåäåëåíèÿ ñèìâîëà void prog() { string fileName, currWord, currMax = ""; cout<<"\nÂåäèòå èìÿ ôàéëà "; подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
30.05.2013, 23:22     Создать класс Человек, имеющий имя, возраст
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
#include <cstring>
 
class Human {
 public:
  Human() : name(0), age(0) {}
  Human(const char *name, int age) : name(0), age(age) {
    setName(name);
  }
  Human(const Human &other) : name(0), age(other.getAge()) {
    setName(other.getName());
  }
  Human &operator=(const Human &other) {
    if (this != &other) {
      setName(other.getName());
      setAge(other.getAge());
    }
    return *this;
  }
  virtual ~Human() {
    delete [] name;
  }
  void setName(const char *name) {
    delete [] this->name;
    this->name = strcpy(new char[strlen(name) + 1], name);
  }
  const char *getName() const { return name; }
  int getAge() const { return age; }
  void setAge(int age) { this->age = age; }
 private:
  char *name;
  int age;
};
 
class Adult : public Human {
 public:
  Adult() : Human(), passport(0) {}
  Adult(const char *name, int age, const char *passport) : Human(name, age),
    passport(0) {
    setPassport(passport);
  }
  Adult(const Adult &adult) : Human(adult), passport(0) {
    setPassport(adult.getPassport());
  }
  Adult &operator=(const Adult &adult) {
    if (this != &adult) {
      Human::operator=(adult);
      setPassport(adult.getPassport());
    }
    return *this;
  }
  virtual ~Adult() {
    delete [] passport;
  }
  void setPassport(const char *passport) {
    delete [] this->passport;
    this->passport = strcpy(new char[strlen(passport) + 1], passport);
  }
  const char *getPassport() const { return passport; }
 private:
  char *passport;
};
 
std::ostream &operator<<(std::ostream &stream, const Human &human) {
  return stream << "Human{" <<
    "name='" << human.getName() << "', " <<
    "age=" << human.getAge() << "}";
}
 
std::ostream &operator<<(std::ostream &stream, const Adult &adult) {
  return stream << "Adult{" <<
    "name='" << adult.getName() << "', " <<
    "age=" << adult.getAge() << ", " <<
    "passport='" << adult.getPassport() << "'}";
}
 
int main(int, char**) {
  Adult a("Petr", 18, "12345");
  std::cout << a << std::endl;
  Adult b;
  a.setPassport("asdfg");
  b = a;
  std::cout << b << std::endl;
 
  Human c(a);
  std::cout << c << std::endl;
 
  return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от amadey18 Посмотреть сообщение
Извиняюсь если что неправильно, я еще новичок)
Надеюсь все правильно.
Поля-строки лучше копировать в класс, а не просто указатель назначать. Иначе поменяете значение исходной строки -- и привет.
 
Текущее время: 04:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru