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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
#1

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

27.09.2011, 21:29. Просмотров 1321. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача на ООП (C++):

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

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

ООП. Не работает задача (конструктор, деструктор) - C++
Ребят, есть задача, она решенная, но я не могу разобраться в работе конструктора и деструктора, поэтому файлы, приложенные к условию не...

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

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

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

15
pincet
1249 / 821 / 91
Регистрация: 23.07.2010
Сообщений: 4,229
27.09.2011, 21:32 #2
не уверен, но в деструкторе exit() зачем?
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
27.09.2011, 21:33 #3
Цитата Сообщение от &Alex& Посмотреть сообщение
~My_class(){ exit(1); }
такое только в VS канает, а вообще это UB
0
pincet
1249 / 821 / 91
Регистрация: 23.07.2010
Сообщений: 4,229
27.09.2011, 21:34 #4
Jupiter,
sorry - UB - это что?
0
&Alex&
19 / 19 / 1
Регистрация: 21.03.2010
Сообщений: 221
27.09.2011, 21:36  [ТС] #5
Цитата Сообщение от Jupiter Посмотреть сообщение
такое только в VS канает, а вообще это UB
Так это и есть VS, ток в параметре должно быть 0 а не 1...Ошибочка
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 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
1249 / 821 / 91
Регистрация: 23.07.2010
Сообщений: 4,229
27.09.2011, 21:39 #7
Именно "UB" я и имел ввиду про exit() в деструкторе
0
&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 минуту

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

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

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


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

ООП - C++
Подскажите статью или книгу где рассказывается про динамические списки (с указателями,ссылками,динамической памятью и классами знаком)

ООП - C++
Господа у меня возникло 2 вопроса по ООП т.к. только не давно начал его изучать . 1) Не как не могу понять для чего умные люди его...

ооп - C++
Нада книгу по ооп, такую что бы было все разжевано максимально. Так, что бы я за минимум времени и усилий разобрался.

ООП - C++
Создать класс Vegetable, содержащий следующие элементы: - поле «вес» float Mass; - поле «зрелость» int Ripeness; - метод получения...


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

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

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