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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Serg22
 Аватар для Serg22
103 / 103 / 31
Регистрация: 04.03.2013
Сообщений: 479
Завершенные тесты: 2
#1

Минимальные комментарии к коду - C++

24.10.2013, 20:54. Просмотров 324. Ответов 1
Метки нет (Все метки)

Доброго времени суток помогите разобраться с примером, пожалуйста. Прокоментируйте, что делают даные класы и ф-ции.
Я начал, но не до конца разобрался
Создать 2 класса:строку String с преобразованием из char * в строку String и наооборот, и Double c преобразованием из double и наооборот, а так же взаимное преобразование String и Double
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
#include <iostream>
#include <string.h>
#include <cstdlib>
#include <stdio.h>
using namespace std;
class Float;
 
class String {
     char*  s;
     int    len;
public:
     String() : len(0) { s = new char[1]; s[0] = 0; }// ??
     String(const char* p); //конструктор преобразования
     ~String() { delete []s; } //деструктор
     String(Float d); // ??
     void print() const { cout << s << endl; }//ф-ция печати
     operator char*();     //преобразование в char
};
class Float{
        float x;
    public:
        Float(float d=0.0):x(d){} // ??
        Float(String s1){ x=atof((char*)s1);}// ?? что делает atof?
        void print() const {cout << x;}// печать
        operator float(){return x;} // что за оператор?
        Float operator=(Float d){x=d.x; return *this;} // ??
};
main(){
    Float z(7.7),q;
    z.print();
    float d= (float) z;
    d += 3.3;
    cout << endl << d << endl;
    q=z;q.print();cout << endl;
    String s1,s2("EXAMPLE");
    s2.print();
    char* l= (char*) s2;
    l[3]='\0';
    cout << l<< endl;
    String w(z);
    w.print();
    system("pause");
    return 0;
}
String::operator char*(){ // что делает даная ф-ция?
     char*  p = new char[len + 1];
     strcpy(p, s);
     return p;
}
 
String::String(const char* p){// что делает даная ф-ция?
     len = strlen(p);
     s = new char[len + 1];
     strcpy(s, p);
}
 
String::String(Float d){// что делает даная ф-ция?
     s = new char[20];
     sprintf(s,"%f",(float)d);
     len=strlen(s);
}
Добавлено через 4 часа 59 минут
up please)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2013, 20:54     Минимальные комментарии к коду
Посмотрите здесь:

Комментарии к коду C++
C++ Написать комментарии к коду
C++ Комментарии к коду
Комментарии к коду на кириллице C++
Необходимы комментарии к коду C++
Комментарии к коду C++
C++ Напишите комментарии к коду
Написать комментарии к коду C++
Написать комментарии к коду C++
C++ Написать комментарии по коду
C++ Нужны комментарии к коду
Нужны комментарии к коду C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max Dark
В поиске работы
 Аватар для Max Dark
1548 / 1401 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
24.10.2013, 21:05     Минимальные комментарии к коду #2
Цитата Сообщение от Serg22 Посмотреть сообщение
Доброго времени суток
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
#include <iostream>
#include <string.h>
#include <cstdlib>
#include <stdio.h>
using namespace std;
class Float;
 
class String {
     char*  s;
     int    len;
public:
     String() : len(0) { s = new char[1]; s[0] = 0; }// создание строки нулевой длины
     String(const char* p); //конструктор преобразования
     ~String() { delete []s; } //деструктор
     String(Float d); // Конструктор из double переводит число в строку
     void print() const { cout << s << endl; }//ф-ция печати
     operator char*();     //преобразование в char
};
class Float{
        float x;
    public:
        Float(float d=0.0):x(d){} // конструктор по умолчанию, если число не задано то ноль, иначе равно числу
        Float(String s1){ x=atof((char*)s1);}// перевод строки в число
        void print() const {cout << x;}// печать
        operator float(){return x;} // что за оператор?
        Float operator=(Float d){x=d.x; return *this;} // присаивает число объекту
};
main(){
    Float z(7.7),q;
    z.print();
    float d= (float) z;
    d += 3.3;
    cout << endl << d << endl;
    q=z;q.print();cout << endl;
    String s1,s2("EXAMPLE");
    s2.print();
    char* l= (char*) s2;
    l[3]='\0';
    cout << l<< endl;
    String w(z);
    w.print();
    system("pause");
    return 0;
}
String::operator char*(){ // приведение к char*, возвращает содержимое объекта в строке с-формата
     char*  p = new char[len + 1];
     strcpy(p, s);
     return p;
}
 
String::String(const char* p){// конструктор из с-формата, копирует строку в объект
     len = strlen(p);
     s = new char[len + 1];
     strcpy(s, p);
}
 
String::String(Float d){// перевод числа в строку
     s = new char[20];
     sprintf(s,"%f",(float)d);
     len=strlen(s);
}
как то так
Yandex
Объявления
24.10.2013, 21:05     Минимальные комментарии к коду
Ответ Создать тему
Опции темы

Текущее время: 15:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru