Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/14: Рейтинг темы: голосов - 14, средняя оценка - 4.50

конструкторы

28.09.2007, 00:57. Показов 2796. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Давеча по учебе пришлось мне столкнуться с конструкторами. В качестве примера
мне дали код, приведенный ниже, написано там было слишом уж неразборчиво, теперь вот мучаюсь.
Главный мой вопрос - может ли все ниже приведенное относиться к одному классу и вообще к одной
проге? При компиляции в одном файле, выдается большое количество ошибок непонятного содержания.

И еще вопросик: 40-я строка. memory-это что? просто имя чего-то или какой-то оператор?Возможно,
что это слово вообще не memory, а какое-то схожее по написанию?!!!
(Почерк у нашего препода-не дай Боже)

Code
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
    class stack { 
  private : enum {empty = -1};
char *s ;  
int max_len, top;
  public:
    stack (); // îíñòðóêòîðû ïî óìîë÷àíèþ
    stack (int size) { s=new char [size]; // êîíñòðóêòîð ñ îäíèì ïàðàìåòðîì
    max_len = size; top=empty; }
    stack (int size, const char str []); //êîíñòðóêòîð ñ äâóìÿ ïàðàìåòðàìè 
    stack (const stack &s); // êîíñòðóêòîð êîïèðîâàíèÿ     ///10 ÑÒÐÎÊÀ/////
     ~ stack { delete [] s;}  //äåñòðóêòîð
 
 
    void reset () {top=empty;}
    void push (char c); char pop ();
    char top_of () const;
    boolean empty () const;
    boolean full () const;
}
                                //20 ÑÒÐÎÊÀ////
 
 
    stack :: stack () { s = new char [1000];
max_len = 1000; top = empty;}
 
 
    stack :: stack (int size, const char str [])    
{ s=new char [size]; max_len = size;
for (int i=0; imax_len && str !=0;++i)
s[i]=str[i];                               //30 ÑÒÐÎÊÀ////
}
 
    stack :: stack (const stack & str) {s=new char [str.max_len];
max_len=str.max_len;top=str.top
memory (s, str.s, max_len);
 
 
    stack :: stack (const stack & str):max_len(str.max_len)
top(str.top) {s=new char [str.max_len];
    memory (s, str.s, max_len);}           //40 ÑÒÐÎÊÀ////
 
    int main () { stack data; // êîíñòðóêòîð ïî óìîë÷àíèþ
stack data [N];     
stack w(4, "abcd");// w.s[0]='A', ..., ws[3]='D'
return 0;
}
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.09.2007, 00:57
Ответы с готовыми решениями:

Конструкторы
#include "stdafx.h" #include <iostream> using namespace std; #include <string> #include <cstdlib> #include <list> ...

Написать класс Треугольник... (Конструкторы С++)
Здравствуйте, помогите с решением нужно Написать класс треугольник имеющий 3 конструктора ( конструктор треугольника, данных и...

Конструкторы, не могу прокоментировать текст проги
class stack { private: enum { Empty=-1}; char *s int max_len, top; public: stack(); stack(int size){ s=new char; ...

2
0 / 0 / 0
Регистрация: 02.03.2007
Сообщений: 9
28.09.2007, 01:04
Автор этого письма я(69_rus). Извините, забыл войти под своим именем.
И еще-в комментариях там, где стоят числа(10, 20, 30...) -это номера строк
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
30.09.2007, 20:31
Ужасть. Код нерабочий, однозначно. Оформление безобразное. И раздает ведь кто-то такой код и не стесняется . Бррр...
Я даже не берусь перечислять все ошибки в этом коде... Самое бросающееся в глаза: два конструктора копирования, честно скажу, типа boolean в С++ не встречал, не стоит точка с запятой после описания класса...

Отвечаю на вопросы. Да, все приведенное может относиться к одному классу, только с некоторыми исправлениями. Вместо memory, я думаю, там должно стоять memcpy. Эта функция находится в memory.h.

Из этого кода я сделал нечто похожее на правду (может, так разберетесь):
Code
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
#include  memory.h;
 
class stack 
{ 
private: 
    enum {empty = -1}; 
    char *s ;  
    int max_len, top; 
public: 
    stack(); 
    stack(int size) 
    { 
        s=new char[size]; 
        max_len = size; 
        top=empty; 
    } 
    stack(int size, const char str []); 
    stack(const stack &str);
    
    ~ stack() 
    { 
        delete [] s;
    }   
 
   void reset() 
   {
       top=empty;
   }
 
   void push(char c); 
   char pop (); 
   char top_of() const; 
   bool full() const; 
}; 
 
 
stack::stack() 
{
    s = new char[1000]; 
    max_len = 1000; 
    top = empty;
} 
 
 
stack::stack (int size, const char str [])    
{
    s = new char [size]; 
    max_len = size; 
    for (int i=0; imax_len && str !=0;++i) 
        s[i]=str[i];                             
} 
 
stack::stack(const stack & str) 
{
    s = new char [str.max_len]; 
    max_len = str.max_len;
    top = str.top; 
    memcpy(s, str.s, max_len);
}        
 
int main ()
{
                stack data; 
    stack data1(100);      
    stack w(4, "abcd"); 
    return 0; 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.09.2007, 20:31
Помогаю со студенческими работами здесь

В проекте VS2012 компилятор игнорирует конструкторы классов
Компилятор отлично компилирует проект и не выдаёт ошибок, но при генерации DEBUG версии и надо полагать и RELEASE не работают конструкторы...

[дизайн и эволюция] провалы в variadic конструкторы
всем привет. уже несколько человек обращались ко мне по почте, с просьбой помочь разобраться с variadic конструкторами. я...

Конструкторы,передача сообщений объектам и реакции объектов на сообщения в С++
Привет всем! Тему чуть-чуть понимаю,но задачу сделать не могу, вы не могли бы мне помочь с этим? вот задача:Создаваемый объект должен...

Webpack собирает проект, а приложение говорит что мои конструкторы не конструкторы
Помогите пожалуйста, в едином файле (не билде) всё работает хорошо, как только начинаю отделять классы и создавать билд, сразу ошибка в...

Определите класс матриц. Напишите перегруженные конструкторы для создания одномерной и двумерной матриц. В конструкторы передаются размерности матриц
Доброго времени суток всем) Извините если не в том разделе) Не могу понять как решить данную задачу "(Определите класс матриц....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru