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

помогите откомпилировать! - C++

Восстановить пароль Регистрация
 
lav1ka
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 7
22.09.2011, 20:54     помогите откомпилировать! #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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdafx.h>
#include <iostream>
#class TA{
        int a;
        int b;
        public:
        int d;
        TA (int x=3,int y=4){a=x;b=y;}
        friend void print(TA&);
        friend class TB;
 
};
class TB{
        public:
        void inc_TA(TA& inca){inca.a++;};
        void inc_TB(TA& incb){incb.b++;};
};
       void print(TA &obj)
       {cout<<obj.a<<"\t"<<obj.b<<endl;}
 
void main()
{
        TA b,*c,d(4,5),*z;
        c=new TA();
        z=new TA(7,8);
        print(b);
        print(d); //4 5
        print(*c);
        print(*z);
 
        delete c;
        delete z;
 
        TB q;
        q.inc_TA(d);
        q.inc_TB(d);
        print(d);//5 6
 
        cin.get();
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,819
Завершенные тесты: 2
23.09.2011, 09:07     помогите откомпилировать! #2
C++
1
#class TA{
уберите решетку

C++
1
void main()
Товарищи, мне уже надоела запись "void main()"
-=ЮрА=-
Заблокирован
Автор FAQ
23.09.2011, 09:52     помогите откомпилировать! #3
Цитата Сообщение от lav1ka Посмотреть сообщение
TA (int x=3,int y=4)
- так не пойдёт
хочешь начальный инит делай конструктор без параметров!

Добавлено через 3 минуты
lav1ka, вот и всё, я добавил лишь TA (){a = 3;b = 4;}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class TA
{
private:
        int a;
        int b;
public:
        int d;
        TA ()           {a = 3;b = 4;}
        TA (int x,int y){a=x;b=y;}
        friend void print(TA&);
        friend class TB;
 
};
Добавлено через 1 минуту
PS:У меня компилятор старый поэтому вначале после хедеров using namespace std; дописать пришлось
Вот работа программы
3 4
4 5
3 4
7 8
5 6
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
23.09.2011, 13:21     помогите откомпилировать! #4
-=ЮрА=-, Это кто сказал, что так не пойдет?
silent_1991
23.09.2011, 14:09
  #5

Не по теме:

ForEveR, борланд 3.1 мб?

-=ЮрА=-
Заблокирован
Автор FAQ
23.09.2011, 15:50     помогите откомпилировать! #6
Цитата Сообщение от ForEveR Посмотреть сообщение
=ЮрА=-, Это кто сказал, что так не пойдет?
Цитата Сообщение от silent_1991 Посмотреть сообщение
Не по теме:
ForEveR, борланд 3.1 мб?
Достаточно широкий аспект задачь можно решить одним личшь конструктором преобразования, но вот когда дело каснётся памяти, а особенно её изменения тогда это никуда негодное построение класса!Предположим в ТА (класс, который приведен здесь) уже 3 переменных, и одна из них void * lpBuffer, которую нужно будет многократно менять в течении программы хммм мне интересно как же тогда сие будет выглядеть
Цитата Сообщение от lav1ka Посмотреть сообщение
TA (int x=3,int y=4){a=x;b=y;}
?
ИМХО в случае если конструктор по умолчанию был атавизмом его бы вообще не использовали даже при объяеснении понятия класс, тем более при объяевлении типов данных, хотя бы тот же СString который 3 конструктора имеет. ТС писал
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
так не пойдёт хочешь начальный инит делай конструктор без параметров!
чтобы не приучалась к плохому а именно одним конструктором всё решать, это годиться для решения 2+2 и не годиться для написания чего то более сложного нежели чёрный экран консоли...
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
23.09.2011, 16:21     помогите откомпилировать! #7
-=ЮрА=-, В программе главное логика, а не окошки.
Я бы не сказал, что это некорректно.
Но не суть.
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
23.09.2011, 18:12     помогите откомпилировать! #8
-=ЮрА=-, что-то маловато вы придумали, надо было развернуться, целую книгу написать...
Лезем в сурцы gcc. Например, в файлик vector. И видим такой вот набор конструкторов:
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
      explicit vector(const _Allocator& __a = _Allocator())
      : _Base(__a)
      { 
        __profcxx_vector_construct(this, this->capacity());
        __profcxx_vector_construct2(this);
      }
 
      explicit vector(size_type __n, const _Tp& __value = _Tp(),
              const _Allocator& __a = _Allocator())
      :  _Base(__n, __value, __a)
      { 
        __profcxx_vector_construct(this, this->capacity());
        __profcxx_vector_construct2(this);
      }
 
      template<class _InputIterator>
        vector(_InputIterator __first, _InputIterator __last,
           const _Allocator& __a = _Allocator())
    : _Base(__first, __last, __a)
      { 
        __profcxx_vector_construct(this, this->capacity());
        __profcxx_vector_construct2(this);
      }
 
      vector(const vector& __x)
      : _Base(__x) 
      { 
        __profcxx_vector_construct(this, this->capacity());
        __profcxx_vector_construct2(this);
      }
Вишь ты, gcc-шную реализацию stl-то невежды писали, везде, где можно, конструкторы с параметрами по умолчанию использовали. Расстрелять!
-=ЮрА=-
Заблокирован
Автор FAQ
23.09.2011, 18:25     помогите откомпилировать! #9
silent_1991, то о чем ты пишешь дословно звучит так на основе имеющихся возможностей ооп накинули виртуальные классы на что-то менее приземленное... Чтобы подвести итог спрошу-когда пишешь int val;а потом val=5;уж не два ли конструктора используем??
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
23.09.2011, 18:28     помогите откомпилировать! #10
-=ЮрА=-, я не смог связать набор слов из вашего последнего поста в осмысленное предложение. Либо излагайте мысли яснее, либо вообще этого не делайте.

Добавлено через 1 минуту
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
когда пишешь int val;а потом val=5;уж не два ли конструктора используем?
Не-а, один. Оператор присваивания - не конструктор. К тому же мы говорим о примитивных типах, а к ним вообще ОО-понятия лучше не применять.
-=ЮрА=-
Заблокирован
Автор FAQ
23.09.2011, 18:46     помогите откомпилировать! #11
Цитата Сообщение от silent_1991 Посмотреть сообщение
К тому же мы говорим о примитивных типах, а к ним вообще ОО-понятия лучше не применять.
- это примитивные типы являются базовыми, на которых потом всё и строится!
Цитата Сообщение от silent_1991 Посмотреть сообщение
я не смог связать набор слов из вашего последнего поста в осмысленное предложение.
по крайней мере это
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
int val;
конструктор без параметров,

По поводу сего -
Цитата Сообщение от silent_1991 Посмотреть сообщение
explicit vector(const _Allocator& __a = _Allocator())
* * * : _Base(__a)
* * * {
* * * * __profcxx_vector_construct(this, this->capacity());
* * * * __profcxx_vector_construct2(this);
* * * }
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Достаточно широкий аспект задачь можно решить одним личшь конструктором преобразования
Цитата Сообщение от silent_1991 Посмотреть сообщение
_Allocator()
- сие можно записать так a = malloc(1);
Далее при изменеии объёма данных для а делаем a = realloc(...) или если на ++
C++
1
2
3
а = new char[1]
char ch = a[0];
a[0] = &(new char[NewSize])[0];
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
23.09.2011, 21:16     помогите откомпилировать! #12
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
сие можно записать так a = malloc(1);
Поясните, с чего это вдруг объект класса "Allocator" можно заменить на malloc?
bambino
23.09.2011, 21:25
  #13

Не по теме:

-=ЮрА=-, Мда, видимо ООП это не твое, помолчи лучше, а то несешь такую херню, что аж смешно, ну реально, думаю многие тут со мой согласяться.

-=ЮрА=-
Заблокирован
Автор FAQ
23.09.2011, 21:56     помогите откомпилировать! #14

Не по теме:

bambino, для вас п 4 правил форума, а на счёт моих знаний не переживайте, лучше свой багаж берегите...



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

Не по теме:

silent_1991, я уже устаю воевать вопрос был один - мне было заявлено учасниками топика что конструктор без парамтров совсем не нужен, я повторю не был бы нужен - вообще бы такого не было!
Далее уже не пойму о чём сейчас речь идёт.
PS:Тем кто не может понять расширение существующего блока памяти с использованием new и особенно остр в выражениях советую сюда посмотреть Одномерный Массив

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Resize(int &n, int add, int * vec)
{
        int val = vec[n - 1];
        //Расширяем память под vec 
        //путём пристыковки новой области размером add
        if(0 < add)//если add положительное
        {
                vec[n - 1] = (new int[1 + add])[0];
                vec[n - 1] = val;
        }
//      if(add < 0)//Чистим память от лишних элементов
//              delete [] (void *)&vec[n - 1 + add];
        n += add;
}



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

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
чего это вдруг объект класса "Allocator" можно заменить на malloc?
я этого не говорил а провожу аналогии...

silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
23.09.2011, 21:59     помогите откомпилировать! #15
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
мне было заявлено учасниками топика что конструктор без парамтров совсем не нужен
Пруф.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
не был бы нужен - вообще бы такого не было
Полностью согласен.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Тем кто не может понять расширение существующего блока памяти с использованием new и особенно остр в выражениях
Это вы, простите, о ком?

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
провожу аналогии
А вот этого делать не надо - мы вроде говорили о конкретных вещах, а не о чём-то около-плавающем.
-=ЮрА=-
Заблокирован
Автор FAQ
23.09.2011, 22:05     помогите откомпилировать! #16
Цитата Сообщение от silent_1991 Посмотреть сообщение
Это вы, простите, о ком?
об этом
Цитата Сообщение от bambino Посмотреть сообщение
Мда, видимо ООП это не твое, помолчи лучше, а то несешь такую херню
- я лью грязь на кого нибудь, почему же вы себе подобное позволяете?!

silent_1991, вы меня не поняли я совершенно не собирался обсуждать gcc:, а писал чтобы ещё раз обратить внимание ТС что не всегда нужно пытаться одним конструктором обходиться, вот и всё
bambino
 Аватар для bambino
193 / 19 / 4
Регистрация: 05.08.2010
Сообщений: 229
23.09.2011, 22:15     помогите откомпилировать! #17

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- я лью грязь на кого нибудь, почему же вы себе подобное позволяете?!
А как тебе еще по-другому обьяснить, что ты несеш ахинею ? Ты же по-нормальному не понимаеш.



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

Не по теме:

минусанул меня, молодец Юра, оценка 5.



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

Не по теме:

Был бы я такой же глупый как и ты -- в ответку минусанул бы, но увы, ты здесь один такой

silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
23.09.2011, 22:15     помогите откомпилировать! #18
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
вот и всё
Не будь это сказано
так
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
так не пойдёт
хочешь начальный инит делай конструктор без параметров!
категорично - никто бы в ответ и слова дурного не сказал.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
24.09.2011, 15:15     помогите откомпилировать! #19
-=ЮрА=-, Не было сказано, что не нужен. Было сказано, что конструктор с параметрами, заданными по умолчанию имеет право на существование и используется.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2011, 15:55     помогите откомпилировать!
Еще ссылки по теме:

C++ Удачно откомпилировать исходлник
C++ не получается откомпилировать
Не могу откомпилировать C++
Просьба откомпилировать файл C++
Откомпилировать сорсы C++

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

Или воспользуйтесь поиском по форуму:
LosAngeles
Заблокирован
24.09.2011, 15:55     помогите откомпилировать! #20
Цитата Сообщение от bambino Посмотреть сообщение

Не по теме:

-=ЮрА=-, Мда, видимо ООП это не твое, помолчи лучше, а то несешь такую херню, что аж смешно, ну реально, думаю многие тут со мой согласяться.

+1

показывает вот сюда if (*pb++ != bCheck)
в этой теме он доказывал, что отсутсвие КК и как следствие из этого неправильное освобождение памяти - косяк Debug режима у компилятора и косяк в функции free
Yandex
Объявления
24.09.2011, 15:55     помогите откомпилировать!
Ответ Создать тему
Опции темы

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