Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
&Alex&
19 / 19 / 3
Регистрация: 21.03.2010
Сообщений: 221
1

Задача на ООП

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

Есть задача: создайте класс, способный хранить строку в куче. Должна существовать возможность передачи строки объекта вашего класса и потом получения указателя на такую же строку. Должна быть также возможность изменения строки объекта класса. Используйте конструкторы и деструктор для внедрения всех автоматических инициализаций и очистки объекта. Я написал, но не уверен что правильно. Если есть ошибки, то помогите найти и исправить.
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 21:29
Ответы с готовыми решениями:

Задача на тему ООП
3. Придумайте свою задачу и выполните её объектно-ориентированный анализ....

Задача по ООП Рыбки в озере
Сам я в программировании полный ноль так что прошу помощи что бы разобраться...

Классическая задача ООП: геометрические фигуры
Решить эту задачу не составляет труда, сталкивался с ней уже. Самому интересно...

ООП. Не работает задача (конструктор, деструктор)
Ребят, есть задача, она решенная, но я не могу разобраться в работе...

Задача по ООП. Передача массива в метод
Подскажите как правильно передавать из объекта в метод, массив чисел? На...

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

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

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

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

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

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


Офигительно информативно - адрес какго-либо объекта....
Вообще то и лабу нужно сдать, и опыт хочу получить
0
talis
793 / 545 / 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
pincet
1323 / 911 / 123
Регистрация: 23.07.2010
Сообщений: 4,939
27.09.2011, 22:18 16
Цитата Сообщение от talis Посмотреть сообщение
pincet, зря вы так. Во время отладки такое может быть очень полезно.
Спрошу прилюдно у &Alex& - в самом деле хотели узнать адрес st?

Не по теме:


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

0
27.09.2011, 22:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2011, 22:18

Концептуальная задача по ООП (виртуальное наследование в C++)
Добрый день. Есть базовый класс A. От него наследуется B : public A. От B...

Задача по ООП (создать класс Alfa)
Ребята, помогите, пожалуйста, с задачей. Второй день долблюсь и не понимаю, что...

Задача из "ООП в C++" Р. Лафоре
Глава 3. Задача 11 (стр. 141 - 4-е издание, СПб, Питер, 2012). Не слишком ли...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru