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

Работа с char* в классе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Матрица_формирование новой матрицы http://www.cyberforum.ru/cpp-beginners/thread444843.html
Вот условие задачи:Составить прогу,которая получает матрицу Х размерностью mxn. Прога в каждой строке определяет наименьший элемент и его индексы и формирует из этих чисел матрицу, расположив в...
C++ Вывести на экран данные автомобиля Добрый день! Необходимо было создать класс авто. Не получается вывести на экран данные автомобиля, предварительно занесенные: #include "stdafx.h" #include <conio.h> #include <stdio.h>... http://www.cyberforum.ru/cpp-beginners/thread444841.html
C++ И еще одна задача по С++...
Проверить: Можно ли коробку размером a x b x c упаковать в посылку размером r x s x t? «Углом» укладывать нельзя.. Углом, это как?! И решить ее надо, используя условный оператор и оператор выбора....
Правила ip-безопасности (ipsec) C++
Простите, если где-то подобная тема есть и я ее не нашел. (поиском перед созданием темы пользовался) Гуглом так же пользовался, но возможно я глуп или плохо искал, но также необходимой мне...
C++ Найти наименьшее значение массива по условию http://www.cyberforum.ru/cpp-beginners/thread444807.html
задание: Элементы массива M(n) упорядочены по не убиванию. Для заданного х: найти наименьшее K такое, что mk < x < mk+1
C++ факториал в С++ Как найти факториал с помощью рекурсивной функции? подробнее

Показать сообщение отдельно
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
12.02.2012, 14:26
Посмотри и сам увидишь, где ошибся. Единственное подскажу - в мейне указатель ты не инициализировал ( не выделил под него память / не записал в него адрес объекта ). Оформление - извини, но УЖАС. Сейчас я конечно не выравнивал все, как надо, но поколдовал немного.. Функции типа get() у тебя для вывода использовались, зачем им возвращать значение? Да и не возвращал ты ничего. И, да, про точку запятой после реализации (определения) функции забудь... Ошибкой это не будет, но это лишний оператор.
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream>
#include <locale>
 
using namespace std;
 
class PERSON
{
private:
    char *name;
    int   age;
    bool  sex;
 
public:
     PERSON();
     PERSON(char *, int,bool);
     PERSON(const PERSON &);
        ~PERSON();
 
    void Show();
    void Set (char *, int, bool); 
 
    void GetName()      const;
    void GetSex ()      const;
    void GetAge ()      const;
 
     void SetName(char *);
     void SetAge (int);
     void SetSex (bool);
};
 
PERSON::PERSON(char *NAME, int AGE, bool SEX)
{
    name = new char[20];
    age  = AGE;
    sex  = SEX;
 
    strcpy(name, NAME); 
 
        cout << "\nConstructor with arguments for "<< this <<endl;
}
 
PERSON::PERSON()
{
    name = new char[2];
    age  = 25;
    sex  = 0;
 
    strcpy(name, "S");
 
        cout << "\nConstructor without arguments for " << this <<endl;
}
 
PERSON::PERSON(const PERSON &per_son)
{
    name = new char[20];
    age  = per_son.age;
    sex  = per_son.sex;
 
        strcpy(name, per_son.name);
    
    cout<<"\nConstructor of copy for " << this << endl;
}
 
void PERSON::GetName() const 
{ cout << " \nName: " << name; }
 
void PERSON::GetAge() const
{ cout << " \nAge: " << age; }
 
void PERSON::GetSex() const 
{ cout << " \nSex(0 - male; 1 - female): " << sex; }
 
void PERSON::Set(char *n, int a, bool s)
{
    delete [] name;
 
    name = new char[20];
    age  = a; 
    sex  = s;
 
    strcpy(name,n);
}
 
void PERSON::SetAge(int a)
{ age = a; }
 
void PERSON::SetName(char *c)
{ strcpy(name, c); }
 
void PERSON::SetSex(bool s)
{ sex = s; }
 
void PERSON::Show()
{
    cout<<" \nName: " << name;
        cout<<" \nAge: " << age;
        cout<<" \nSex (0 - male, 1 - female): " << sex <<endl;
}
  
PERSON::~PERSON()
{ delete [] name; }
 
int main()
{
    char *name = new char[20];
    int   age;
    bool  sex;
 
    cout << "Input name: "; 
    cin  >> name;
    cout << "Input age: "; 
    cin  >> age;
    cout << "Input sex: "; 
    cin  >> sex;
 
    PERSON  b;
    PERSON *c = new PERSON;
 
    b.Set (name, age, sex);
        b.Show();
 
    c->Set ("Milady", 19, 1);
        c->Show();
 
    system("PAUSE");
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.