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

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

Восстановить пароль Регистрация
 
Serg22
 Аватар для Serg22
102 / 102 / 31
Регистрация: 04.03.2013
Сообщений: 479
Завершенные тесты: 2
24.10.2013, 20:54     Минимальные комментарии к коду #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++ Комментарии к коду
Двумерные массивы. Комментарии к коду. VS C++
Комментарии к коду на кириллице C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 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     Минимальные комментарии к коду
Ответ Создать тему
Опции темы

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