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

Задача на ООП - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
&Alex&
 Аватар для &Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
27.09.2011, 21:29     Задача на ООП #1
Есть задача: создайте класс, способный хранить строку в куче. Должна существовать возможность передачи строки объекта вашего класса и потом получения указателя на такую же строку. Должна быть также возможность изменения строки объекта класса. Используйте конструкторы и деструктор для внедрения всех автоматических инициализаций и очистки объекта. Я написал, но не уверен что правильно. Если есть ошибки, то помогите найти и исправить.
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 21:29     Задача на ООП
Посмотрите здесь:

ООП на С++ C++
ООП C++
Задача по ООП Рыбки в озере C++
C++ Задача по ООП (создать класс Alfa)
Задача из "ООП в C++" Р. Лафоре C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pincet
 Аватар для pincet
1096 / 757 / 79
Регистрация: 23.07.2010
Сообщений: 3,795
27.09.2011, 21:32     Задача на ООП #2
не уверен, но в деструкторе exit() зачем?
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
27.09.2011, 21:33     Задача на ООП #3
Цитата Сообщение от &Alex& Посмотреть сообщение
~My_class(){ exit(1); }
такое только в VS канает, а вообще это UB
pincet
 Аватар для pincet
1096 / 757 / 79
Регистрация: 23.07.2010
Сообщений: 3,795
27.09.2011, 21:34     Задача на ООП #4
Jupiter,
sorry - UB - это что?
&Alex&
 Аватар для &Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
27.09.2011, 21:36  [ТС]     Задача на ООП #5
Цитата Сообщение от Jupiter Посмотреть сообщение
такое только в VS канает, а вообще это UB
Так это и есть VS, ток в параметре должно быть 0 а не 1...Ошибочка
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 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
ну и что? это не меняет ошибки, захочет ваш препод скомпилить вашу программу под линуксом и получит бесконечный цикл
pincet
 Аватар для pincet
1096 / 757 / 79
Регистрация: 23.07.2010
Сообщений: 3,795
27.09.2011, 21:39     Задача на ООП #7
Именно "UB" я и имел ввиду про exit() в деструкторе
&Alex&
 Аватар для &Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
27.09.2011, 21:40  [ТС]     Задача на ООП #8
Цитата Сообщение от Jupiter Посмотреть сообщение
pincet, http://alenacpp.blogspot.com/2005/08...undefined.html

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

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

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

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


Офигительно информативно - адрес какго-либо объекта....
Вообще то и лабу нужно сдать, и опыт хочу получить
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2011, 22:18     Задача на ООП
Еще ссылки по теме:

C++ ООП. Не работает задача (конструктор, деструктор)
C++ Концептуальная задача по ООП (виртуальное наследование в C++)
C++ Классическая задача ООП: геометрические фигуры

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

Или воспользуйтесь поиском по форуму:
pincet
 Аватар для pincet
1096 / 757 / 79
Регистрация: 23.07.2010
Сообщений: 3,795
27.09.2011, 22:18     Задача на ООП #16
Цитата Сообщение от talis Посмотреть сообщение
pincet, зря вы так. Во время отладки такое может быть очень полезно.
Спрошу прилюдно у &Alex& - в самом деле хотели узнать адрес st?

Не по теме:


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

Yandex
Объявления
27.09.2011, 22:18     Задача на ООП
Ответ Создать тему
Опции темы

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