Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
1

Задача на ООП

27.09.2011, 21:29. Показов 2646. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть задача: создайте класс, способный хранить строку в куче. Должна существовать возможность передачи строки объекта вашего класса и потом получения указателя на такую же строку. Должна быть также возможность изменения строки объекта класса. Используйте конструкторы и деструктор для внедрения всех автоматических инициализаций и очистки объекта. Я написал, но не уверен что правильно. Если есть ошибки, то помогите найти и исправить.
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
// Microsoft Visual Studio 2010
//Visual C++
#include "stdafx.h"
#include<iostream>
 
using namespace std;
 
class My_class{
public :string st;
My_class(string s){
    st=s;
    }
~My_class(){
    exit(1);
}
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i;
    string str;
    My_class new_class(str);
    cout<<&new_class.st;
    cin>>i;
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2011, 21:29
Ответы с готовыми решениями:

Задача по ООП
В задании нужно реализовать: введения структурной переменной ( функция input ( )) ; функцию check...

Задача на ООП
Задача.в центре появляется солнце (с лучиками) им можно управлять стрелочками.рисуется солнце и...

Задача ООП
Здравствуйте. правильно ли решена задача. Посмотрите пожалуйста. //Создать класс Man (человек), с...

Задача по ООП
Приветствую! Помогите с задачей по ООП. Я новичок, не судите строго, нужно для общего...

15
1652 / 1151 / 173
Регистрация: 23.07.2010
Сообщений: 6,847
27.09.2011, 21:32 2
не уверен, но в деструкторе exit() зачем?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
27.09.2011, 21:33 3
Цитата Сообщение от &Alex& Посмотреть сообщение
~My_class(){ exit(1); }
такое только в VS канает, а вообще это UB
0
1652 / 1151 / 173
Регистрация: 23.07.2010
Сообщений: 6,847
27.09.2011, 21:34 4
Jupiter,
sorry - UB - это что?
0
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
27.09.2011, 21:36  [ТС] 5
Цитата Сообщение от Jupiter Посмотреть сообщение
такое только в VS канает, а вообще это UB
Так это и есть VS, ток в параметре должно быть 0 а не 1...Ошибочка
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
27.09.2011, 21:38 6
pincet, http://alenacpp.blogspot.com/2... fined.html

Добавлено через 1 минуту
Цитата Сообщение от &Alex& Посмотреть сообщение
Так это и есть VS
ну и что? это не меняет ошибки, захочет ваш препод скомпилить вашу программу под линуксом и получит бесконечный цикл
1
1652 / 1151 / 173
Регистрация: 23.07.2010
Сообщений: 6,847
27.09.2011, 21:39 7
Именно "UB" я и имел ввиду про exit() в деструкторе
0
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
27.09.2011, 21:40  [ТС] 8
Цитата Сообщение от Jupiter Посмотреть сообщение
pincet, http://alenacpp.blogspot.com/2... fined.html

Добавлено через 1 минуту

ну и что? а возьмет ваш препод и скомпилит вашу программу под линуксом и получит бесконечный цикл
Это не имеет особого значения, дэструктор можно вообще убрать. Мне важное само задание.
0
1652 / 1151 / 173
Регистрация: 23.07.2010
Сообщений: 6,847
27.09.2011, 21:49 9
О, бля, только в код всмотрелся - печалько.
нежизнеспособно твое решение.
моветон - разрешать public данным класса - читаем инкапсуляцию.
создавать экземпляр класса с неопределенным значением - сильно от компилятроа зависит (прошу гуру тут меня подправить, если неправ)
запись cout<<&new_class.st; смущает, просто ППЦ - чтой-та?
0
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
27.09.2011, 21:52  [ТС] 10
Цитата Сообщение от pincet Посмотреть сообщение
О, бля, только в код всмотрелся - печалько.
нежизнеспособно твое решение.
моветон - разрешать public данным класса - читаем инкапсуляцию.
создавать экземпляр класса с неопределенным значением - сильно от компилятроа зависит (прошу гуру тут меня подправить, если неправ)
запись cout<<&new_class.st; смущает, просто ППЦ - чтой-та?
И как нужно правильно??? Просто я С++ 2-й день изучаю))
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.09.2011, 21:53 11
Цитата Сообщение от pincet Посмотреть сообщение
запись cout<<&new_class.st; смущает, просто ППЦ - чтой-та?
предположительно вывод адреса поля st объекта new_class
0
1652 / 1151 / 173
Регистрация: 23.07.2010
Сообщений: 6,847
27.09.2011, 22:06 12
ты мечаешь лабу сдать, или приобрести реальный опыт в ООП?
Если ответ на вопрос!="лабу сдать" - задавай конкретные вопросы - здесь есть люди, которые на них ответят.

Добавлено через 1 минуту
Цитата Сообщение от talis Посмотреть сообщение
предположительно вывод адреса поля st объекта new_class
Офигительно информативно - адрес какго-либо объекта....
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.09.2011, 22:07 13
Цитата Сообщение от pincet Посмотреть сообщение
Офигительно информативно - адрес какго-либо объекта....
pincet, зря вы так. Во время отладки такое может быть очень полезно.
0
20 / 20 / 3
Регистрация: 21.03.2010
Сообщений: 221
27.09.2011, 22:08  [ТС] 14
Цитата Сообщение от pincet Посмотреть сообщение
ты мечаешь лабу сдать, или приобрести реальный опыт в ООП?
Если ответ на вопрос!="лабу сдать" - задавай конкретные вопросы - здесь есть люди, которые на них ответят.

Добавлено через 1 минуту


Офигительно информативно - адрес какго-либо объекта....
Вообще то и лабу нужно сдать, и опыт хочу получить
0
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
27.09.2011, 22:17 15
&Alex&, вообще как-то так:

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
#include <iostream>
#include <string>
 
using namespace std;
 
class CDummy
{
private:
    string str;
 
public:
    CDummy( const string &s ) : str( s ) { };
    CDummy( const CDummy &other ) : str( other.str ) { };
 
    ~CDummy() { }; // не нужен он тут
 
    friend ostream & operator<<( ostream &os, const CDummy &obj );
};
 
ostream & operator<<( ostream &os, const CDummy &obj )
{
    os << obj.str;
    return os;
}
 
int main( )
{
    CDummy obj1( "hello, world!" );
    CDummy obj2( obj1 );
 
    cout << "obj1: " << obj1 << "\nobj2: " << obj2 << '\n';
 
    return 0;
}
0
1652 / 1151 / 173
Регистрация: 23.07.2010
Сообщений: 6,847
27.09.2011, 22:18 16
Цитата Сообщение от talis Посмотреть сообщение
pincet, зря вы так. Во время отладки такое может быть очень полезно.
Спрошу прилюдно у &Alex& - в самом деле хотели узнать адрес st?

Не по теме:


Не с того начинаете.
Форум - зло для начинающих. Пока сами шишек не набьете на элементарщине - пользы не будет

0
27.09.2011, 22:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2011, 22:18
Помогаю со студенческими работами здесь

Задача по ООП
Определить класс «Многочлен», описывающий алгебраический многочлен от одной переменной, задаваемой...

Задача на ООП
Вам дано описание наследования классов в следующем формате. &lt;имя класса 1&gt; :&lt;имя класса 2&gt; &lt;имя...

Задача по ООП
Дано объект :окружность поле:радиус ,центр окружности методы:конструктор инициализации площадь...

Задача по ООП
Всем здравствуйте. Перешел на второй курс , на первом изучали язык Си. В этом году нам поставили...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru