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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 81, средняя оценка - 4.69
Evg
Эксперт CАвтор FAQ
17633 / 5857 / 378
Регистрация: 30.03.2009
Сообщений: 16,155
Записей в блоге: 26
#1

[Задача] Объясните результат исполнения программы - C++

10.10.2011, 18:04. Просмотров 9851. Ответов 21

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Файл t1.cc
#include <iostream>
 
class C
{
    int x;
 
  public:
    C() { x = 10; }
    int get() { return x; }
};
 
int main (void)
{
  C c;
 
  std::cout << c.get() << std::endl;
  return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
// Файл t2.cc
class C
{
  public:
    int get();
};
 
int C::get()
{
  return 20;
}
Код
$ g++ t1.cc t2.cc
$ ./a.out
20
Задача из разряда "трудноуловимые ошибки"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2011, 18:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос [Задача] Объясните результат исполнения программы (C++):

Объясните как записать код программы с использованием указателей - C++
Раскрасить в массиве при выводе бирюзовым цветом отрицательные элементы на главной диагонали, стоящие после этого минимального элемента. ...

Объясните принцип работы программы - C++ Builder
доброго времени суток написал программу, она создает массив из чисел которые берет из edit1 и edit2 и затем массив выводит в edit3,...

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

Как заставить Builder 6 показывать результат выполнения программы? - C++ Builder
У меня C++ Builder 6. Написал простую программу, например &quot;Hello, Word!&quot;, нажимаю Run (F9). Пишет, что эроров ноль, но черное окно с...

Объясните подробно данный код программы. Знаю что это фильтр а пошагово что к чему не понимаю - C++ Builder
void __fastcall TForm1::suiButton7Click(TObject *Sender) { tdiag -&gt; Filtered = false; tdiag -&gt; Filt = «id_p=« + suiEdit6 -&gt; Text; ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Evg
Эксперт CАвтор FAQ
17633 / 5857 / 378
Регистрация: 30.03.2009
Сообщений: 16,155
Записей в блоге: 26
22.11.2011, 20:47  [ТС] #16
Цитата Сообщение от thick_int Посмотреть сообщение
Но все же ради интереса укажите тот ущербный компилятор, который такую лажу не просекает
Ты вообще читаешь, что в теме пишут?
thick_int
Заблокирован
22.11.2011, 23:54 #17
Да Вы знаете, я так всего то с C++ знаком где-то месяц.
Конечно, еще разбираюсь слабо.
Вы уж так строго не судите новичка.

А что в теме написано, я вот так это и понял, как пишу.
Evg
Эксперт CАвтор FAQ
17633 / 5857 / 378
Регистрация: 30.03.2009
Сообщений: 16,155
Записей в блоге: 26
23.11.2011, 10:43  [ТС] #18
Пока сентенция сводится к тому, что виндузовые компиляторы ругаются на линковке, а юниксовые - нет. Потому что там и там используются разный формат исполняемого файла, и под виндой, где используется более ущербный формат, не проходят такие финты ушами, которые возможны под юниксом.

Ну и так, для общего сведения. "g++" - это имя компилятора
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
28.11.2011, 01:16 #19
Цитата Сообщение от Evg Посмотреть сообщение
Пока сентенция сводится к тому, что виндузовые компиляторы ругаются на линковке, а юниксовые - нет. Потому что там и там используются разный формат исполняемого файла, и под виндой, где используется более ущербный формат, не проходят такие финты ушами, которые возможны под юниксом.
подробнее изложи, в чем бОльшая ущербность формата. проиллюстрируй на примере этого случая. это интересно.

пока мне кажется все это раздражением при попытке завинтить шуруп с прямым шлицом крестообразной отверткой. формат то ли отвертки, то ли шурупа - определенно ущербный.

об обобщении "виндузовые компиляторы". недавно было решено старый проект, сделанный под nt vs6 (mfc) развивать дальше ("ведь он уже есть, и успешно работает", почему не использовать оттуда куски, такой франкенштейн создать, и к нему осовремененного добавить, и будет хорошо). на то, чтобы сделать его компилируемым под vs2010, двое пахали одну неделю. потом еще столько же ушло на то, чтобы оно снова заработало. и бой продолжается. постепенно отрезаются омертвевшие части, заменяются новыми. затраты уже, по-моему, превысили затраты на новую разработку. а "всего лишь другой компилятор". и тоже виндоузовый.
Evg
Эксперт CАвтор FAQ
17633 / 5857 / 378
Регистрация: 30.03.2009
Сообщений: 16,155
Записей в блоге: 26
28.11.2011, 11:03  [ТС] #20
Цитата Сообщение от novi4ok Посмотреть сообщение
подробнее изложи, в чем бОльшая ущербность формата. проиллюстрируй на примере этого случая. это интересно
Это был всего лишь пас назад

Цитата Сообщение от thick_int Посмотреть сообщение
Но все же ради интереса укажите тот ущербный компилятор, который такую лажу не просекает
Добавлено через 4 минуты
Цитата Сообщение от novi4ok Посмотреть сообщение
а "всего лишь другой компилятор". и тоже виндоузовый
Не поверишь, но в линуксе будет то же самое. И дело не только в компиляторе, но и в библиотеках и в интерфейсах операционной системы, и в изменившихся стандартах языка. То бишь на современной операционке скомпилять большую программу 10 летней давности (особенно если на Си++ написано)

Цитата Сообщение от novi4ok Посмотреть сообщение
об обобщении "виндузовые компиляторы"
Это не обобщение, а эмпирическая сентенция на текущий момент. По результату того, где данный пример запускался. И дело не в компиляторе, а в том, как компилятор использует возможности бинарного формата, используемого в винде и в линухе
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
28.11.2011, 13:47 #21
Цитата Сообщение от Evg Посмотреть сообщение
Это был всего лишь пас назад
ловкий, вынужден признать.
Цитата Сообщение от Evg Посмотреть сообщение
Не поверишь, но в линуксе будет то же самое. И дело не только в компиляторе, но и в
я не только поверю, но уже имел возможность много раз лично удостовериться. тот же каменный век, что и везде. миру еще не послан пророк, который сложные вещи так просто представит, что все уверовавшие будут спасены.
Evg
Эксперт CАвтор FAQ
17633 / 5857 / 378
Регистрация: 30.03.2009
Сообщений: 16,155
Записей в блоге: 26
28.11.2011, 15:03  [ТС] #22
Цитата Сообщение от novi4ok Посмотреть сообщение
тот же каменный век, что и везде
Но если так везде, может это фича?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2011, 15:03
Привет! Вот еще темы с ответами:

Объясните пожалуйста результат работы программы - C++
#include &lt;iostream&gt; using namespace std; int main() { short int i; short unsigned int j; j = 60000; ...

Как вывести результат исполнения этой программы? - Assembler
Написал программу, она работает проверял в turbo debbuger. Но не могу понять как вывести результат исполнения этой программы. Помогите...

Объясните результат работы следующей программы - C++
double x =1.23456789; for(int i=0; i&lt;1030;i++) x=x/2; for( int i=0; i &lt;1030;i++) x=x*2; cout.precision (12); ...

Объясните разницу во времени исполнения кода - Алгоритмы
Доброго времени суток. Ниже привожу 2 программы, которые отличаются лишь способом получения степени. 1 программа - через цикл for: ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.11.2011, 15:03
Ответ Создать тему
Опции темы

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