Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не ловится exception в try catch, exception try catch 
V
    Опции темы
azesmcar
Дата 19.6.2009, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(Данкинг @  19.6.2009,  09:35 Найти цитируемый пост)
В Билдере используется С++, но при этом писать программы там можно вполне именно адекватно, в то время как в VS эта адекватность как-то потеряна. smile По крайней мере,  VS 6.0, которую я юзал.

Ну..это не адекватность языка, а адекватность библиотеки MFC (которая спроектирована "хуже некуда"). А язык С++ от этого свою адекватность не теряет. Не надо путать эти понятия, MFC библиотека и ее вполне могли написать плохо, и то что ее написали плохо на С++ никак не порочит доброе имя этого языка smile на любом языке можно плохую программу написать (более того, в основном люди так и поступают smile )

Это сообщение отредактировал(а) azesmcar - 19.6.2009, 09:39
PM   Вверх
Леопольд
Дата 19.6.2009, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Никак не могу понять следующую аномалию

test.h
Код

#ifndef TEST_H
#define TEST_H

#include <iostream>

static int var = 0;

void dyn_func(void);

static void sta_func(void){
    std::cout<<var<<std::endl;
}

inline void inl_func(void){
    std::cout<<var<<std::endl;
}

static inline void sta_inl_func(void){
    std::cout<<var<<std::endl;
}

#endif


test.cpp
Код

#include "test.h"

int main(int argc, char* argv[])
{
    var = 1;
    std::cout<<"var in main = "<<var<<std::endl;
    std::cout<<"var in main { sta_func } = ";
    sta_func();
    std::cout<<"var in main { inl_func } = ";
    inl_func();
    std::cout<<"var in main { sta_inl_func } = ";
    sta_inl_func();

    std::cout<<std::endl;
    dyn_func();
}


second.cpp
Код

#include "test.h"

void dyn_func(void){
    var = 2;
    std::cout<<"var in dyn_func = "<<var<<std::endl;
    std::cout<<"var in dyn_func { sta_func } = ";
    sta_func();
    std::cout<<"var in dyn_func { inl_func } = ";
    inl_func();
    std::cout<<"var in dyn_func { sta_inl_func } = ";
    sta_inl_func();
}


результат
Код

var in main = 1
var in main { sta_func } = 1
var in main { inl_func } = 1
var in main { sta_inl_func } = 1

var in dyn_func = 2
var in dyn_func { sta_func } = 2
var in dyn_func { inl_func } = 1
var in dyn_func { sta_inl_func } = 2
Press any key to continue . . .


Почему var in dyn_func { inl_func } = 1 ?
Чем отличается статическая компоновка inline функций от статической компоновки static функций? Компилятор из VS 2005, не удивлюсь если g++ покажет иной результат.


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Данкинг
Дата 19.6.2009, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(azesmcar @  19.6.2009,  10:38 Найти цитируемый пост)
никак не порочит доброе имя этого языка

Я, собственно, не являюсь столь уж яростным противником С++, я куда больше и чаще наезжаю на VBA. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
azesmcar
Дата 19.6.2009, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(Данкинг @  19.6.2009,  09:40 Найти цитируемый пост)
чаще наезжаю на VBA

давайте наезжать вместе smile 

Леопольд
а почему вы решили что эта тема самая подходящая для вашего вопроса? Знаете, если создать свою тему будет намного удобнее.
PM   Вверх
Леопольд
Дата 19.6.2009, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(Данкинг @ 19.6.2009,  09:35)
Цитата(azesmcar @  19.6.2009,  09:46 Найти цитируемый пост)
Билдер - это среда разработки и компилятор, а С++ язык программирования. 

В Билдере используется С++, но при этом писать программы там можно вполне именно адекватно, в то время как в VS эта адекватность как-то потеряна. smile По крайней мере,  VS 6.0, которую я юзал.

Не надо путать мягкое с тёплым.
И что мешает использовать QT или wxWidgets? Это тоже GUI (в основном) библиотеки.

Добавлено через 1 минуту и 56 секунд
Цитата(azesmcar @ 19.6.2009,  09:46)
Цитата(Данкинг @  19.6.2009,  09:40 Найти цитируемый пост)
чаще наезжаю на VBA

давайте наезжать вместе smile 

Леопольд
а почему вы решили что эта тема самая подходящая для вашего вопроса? Знаете, если создать свою тему будет намного удобнее.

Потому что здесь эту тему читает человек, который прочитал много полезных книг по С++. И советует мне их почитать тоже. Вот мне интересно, был ли в тех книгах ответ на мой вопрос? smile


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
azesmcar
Дата 19.6.2009, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(Леопольд @  19.6.2009,  09:46 Найти цитируемый пост)
Потому что здесь эту тему читает человек, который прочитал много полезных книг по С++. И советует мне их почитать тоже. smile 

Я еще во флейме читаю, можете там тоже запостить вопрос.

Цитата(Леопольд @  19.6.2009,  09:46 Найти цитируемый пост)
Вот мне интересно, был ли в тех книгах ответ на мой вопрос? smile 

Частично содержат. 

PM   Вверх
Леопольд
Дата 19.6.2009, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(azesmcar @ 19.6.2009,  09:57)
Цитата(Леопольд @  19.6.2009,  09:46 Найти цитируемый пост)
Вот мне интересно, был ли в тех книгах ответ на мой вопрос? smile 

Частично содержат.

Раз Вы читали, то наверное, сможете частично ответить на мой вопрос smile Буду премного благодарен. Хотя, я создал отдельную тему

Добавлено @ 10:04
Цитата(zim22 @ 19.6.2009,  08:13)
Цитата(Леопольд @  18.6.2009,  23:06 Найти цитируемый пост)
Очень хорошо. Зачем мне его читать? Что именно я найду в этой книге?

не читайте. я ошибался, когда его вам рекомендовал. вы там ничего не найдёте.

Вы читали, мне интересно ваше субъективное мнение о книге а не то которое написанно на всех заборах.

Это сообщение отредактировал(а) Леопольд - 19.6.2009, 10:07


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
mes
Дата 19.6.2009, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Леопольд @  19.6.2009,  08:46 Найти цитируемый пост)
Потому что здесь эту тему читает человек, который прочитал много полезных книг по С++. И советует мне их почитать тоже. Вот мне интересно, был ли в тех книгах ответ на мой вопрос? smile

Отвечу за него : был и был разобран с разных сторон и был ответ не только на этот вопрос. smile




--------------------
PM MAIL WWW   Вверх
azesmcar
Дата 19.6.2009, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(mes @  19.6.2009,  10:27 Найти цитируемый пост)
Отвечу за него : был и был разобран с разных сторон и был ответ не только на этот вопрос. smile

 smile 
Вообще-то к этому вопросу Струструп тоже подходил. Это обычный статик, ничего удивительного тут нету. Инлайнин очень хорошо рассмотрен у Саттера в More Exceptional C++. В этих результатах ничего необычного нет, что просили - то и получили. Хотите одну переменную, используйте extern.

Это сообщение отредактировал(а) azesmcar - 19.6.2009, 10:43
PM   Вверх
zim22
Дата 19.6.2009, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(Леопольд @  19.6.2009,  10:02 Найти цитируемый пост)
Вы читали, мне интересно ваше субъективное мнение о книге а не то которое написанно на всех заборах.

я не читал ещё. просматривал. понравилось. там очень много умных слов и интересных примеров.
например: 
15.3. Изгиб "истины"
Булева логика основана на понятии двух состояний, 0 и 1.... Увы, даже в стандарте(С++-98: 3.9.1.6; примеч.42) отмечается, что "применение значения bool... "непредусмотренным" образом... может привести к тому, что его поведение не будет соответстововать ни значению true, ни значению false"
Код

reinterpret_cast<char&>(b) = 128;
if (b != false)
{
  printf("b != false"); // Это выводится на печать...
}
if (b != true)
{
  printf("b != true"); // и это...
}
if (b)
{
  printf("b is implictly true"); // и это.
}



--------------------
PM MAIL   Вверх
Леопольд
Дата 19.6.2009, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Это конечно интересно, но я сомневаюсь что можно встретить живой пример такого кода. Что-то более призёмлённое там есть или всё такого уровня абстрагирования от реальности?

Это сообщение отредактировал(а) Леопольд - 19.6.2009, 13:19


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
zim22
Дата 19.6.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(Леопольд @  19.6.2009,  13:16 Найти цитируемый пост)
Что-то более призёмлённое там есть

эта книга гораздо приземлённей Современного проектирования Александреску.


--------------------
PM MAIL   Вверх
Леопольд
Дата 21.6.2009, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(zim22 @ 19.6.2009,  13:32)
Цитата(Леопольд @  19.6.2009,  13:16 Найти цитируемый пост)
Что-то более призёмлённое там есть

эта книга гораздо приземлённей Современного проектирования Александреску.

Под приземлённостью я имел ввиду что-то более реальное, а не простое. У Александреску есть Loki.
 Я имел ввиду что "Изгиб Истины" ни для чего не пригоден. Что можно с его помощью сделать? Скорее всего ничего. К тому же использование reinterpret_cast говорит о том, что проект до боли нуждается в перепроектировании, хотя его скорее всего даже не проектировали до этого.


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
voby
Дата 24.6.2009, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 24.6.2009

Репутация: нет
Всего: нет



что это за безобразие?  smile 
Код

 A b = new B;
 b->Method();
 delete b;

И при чём тут компилятор? Он делает всё правильно, как от него и требуют.
Виртуальные функции и работа с памятью должна делаться так:
Код

 A* b = new B;
 b->Method();
 delete b;


PM MAIL   Вверх
azesmcar
Дата 24.6.2009, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



voby

Скорее всего вы не заметили, но проблема не в том что этот код не компилируется, а проблема была в другом. Это всего лишь код показывающий проблему и совершенно необязательно чтобы он компилировался. И всем было понятно, что там должен быть указатель. Почему-то всем кроме вас. В дополнение к этому, вопрос давно решен.
PM   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1140 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.