С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 351
#1

Три камня преткновения - C++

07.08.2013, 19:00. Просмотров 838. Ответов 14
Метки нет (Все метки)

Доброго времени суток форумчане!

Углубляясь в изучение этого интересного ЯП постоянно генерируются вопросы, ответы на которые не смог нагуглить, но их понимание необходимо для дальнейшего изучения, поэтому хочу обратиться к более профессиональным программистам, которые помогут мне разобраться в следующем:

1) В википедии прочитал следующее =>
"Существует множество реализаций языка С++, как бесплатных, так и коммерческих и для различных платформ.
Например, на платформе х86 это GCC, Visual C++, intel C++ Compiler, Embarcadero (Borland) C++ Builder и другие."
Вопрос в следующем - как можно узнать какую реализацию С++ я изучаю (пишу полиморфные конструкции хеллоу ворда в консоли )?
Ну и если можно то расскажите в 2-3х словах о каждой разновидности, чтоб скорректировать направление изучения.

2) В С++ при описании функции можно задать условия, что аргументы неизвестны (...). Итак имеем следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
void func(...)
{
cout << x;
}
 
int main()
{
int x = 7;
func(x);
return 0;
}
каким образом можно в func() использовать значение "x"? (использование шаблонов не предлагать )

3) Имеем базовый класс myAuto c 2-мя членами инт (итого - 8 бит). Наследуем новый класс Lada еще с 2 членами инт, и при следующем коде:
C++
1
2
3
4
void main()
{
Lada *ptrL = new Lada;
}
Имеем указатель на объект Lada размер которого 4 бита... Как так получается, Lada же должна наследовать
8 байт от класса myAuto + имеет свои 8 байт, итого размер, который, логически, должен быть = 16 байт? (размер определяю через функцию sizeof)

 Комментарий модератора 
По отдельным вопросам создаем разные темы. Предупреждение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2013, 19:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Три камня преткновения (C++):

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

путешествие камня по галактике - C++
Нужно решить такую задачу Камень движется по вселенной со постоянной скоростью U Допустим он начинает двигаться с этих координат 37°...

Ошибка в коде. Программа расчета броска камня - C++
Программа расчета броска камня по Методу Рунге-Кутта. Выдает ошибку в классе вектор, не получается ее исправить. Программа в результате...

Решение физической задачи: рассчитать полет камня, брошенного под углом к горизонту - C++
День добрый! Есть проблемка изучаю c++ первый день, прошу помощи по данной задаче. Вот ее условие:Человек,находящийся на краю обрыва...

Дано слово. Переставить первые три и последние три буквы - C++
Привет всем. Помогите пожалуйста кто может решить две задачи по C++. Сам пробовал решить_но безуспешно. 1.Дано слово. Переставить...

Даны три списка потребителей и три массива объёмов электроэнергии - C++
Даны три списка потребителей и три массива объёмов электроэнергии. Напечатать из каждого списка потребителей с минимальным(min) и...

14
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,295
Записей в блоге: 2
Завершенные тесты: 1
07.08.2013, 19:04 #2
Цитата Сообщение от BESSON_off Посмотреть сообщение
myAuto c 2-мя членами инт (итого - 8 бит)
не бит, а байт
0
0x10
2483 / 1658 / 249
Регистрация: 24.11.2012
Сообщений: 4,133
07.08.2013, 19:07 #3
Цитата Сообщение от BESSON_off Посмотреть сообщение
(размер определяю через функцию sizeof)
sizeof указателя == размер машинного слова, зависит от разрядности системы. Для получения размера объекта - sizeof(*obj).
0
Fyret
186 / 172 / 13
Регистрация: 30.07.2013
Сообщений: 359
07.08.2013, 19:09 #4
1) каждая реализация реализует Стандарт C++. Все, что не определено Стандартом, называется undefined behavior, поведение в таких случаях зависит от компилятора (реализации). Таких случаев надо избегать со страшной силой.

2) va_list и компания.

3) размер указателя - 4 байта, размер объекта - 16.
2
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 351
07.08.2013, 19:59  [ТС] #5
Цитата Сообщение от 0x10 Посмотреть сообщение
sizeof указателя == размер машинного слова, зависит от разрядности системы. Для получения размера объекта - sizeof(*obj).
sizeof(*ptr) - получить размер объекта
sizeof(ptr) - получить размер указателя
sizeof(&ptr) - ?
0
0x10
2483 / 1658 / 249
Регистрация: 24.11.2012
Сообщений: 4,133
07.08.2013, 20:02 #6
Цитата Сообщение от BESSON_off Посмотреть сообщение
sizeof(&ptr) - ?
Адрес указателя == указатель.
1
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 351
07.08.2013, 20:05  [ТС] #7
2) va_list и компания.

Разобрался:
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
/* va_arg example */
#include <stdio.h>      /* printf */
#include <stdarg.h>     /* va_list, va_start, va_arg, va_end */
 
int FindMax (int n, ...)
{
  int i,val,largest;
  va_list vl;
  va_start(vl,n);
  largest=va_arg(vl,int);
  for (i=1;i<n;i++)
  {
    val=va_arg(vl,int);
    largest=(largest>val)?largest:val;
  }
  va_end(vl);
  return largest;
}
 
int main ()
{
  int m;
  m= FindMax (7,702,422,631,834,892,104,772);
  printf ("The largest value is: %d\n",m);
  return 0;
}
Это на случай, если кому-то интересно

Офигеть, насколько интересный язык
0
ching0n
3 / 3 / 1
Регистрация: 06.08.2013
Сообщений: 23
07.08.2013, 20:48 #8
Цитата Сообщение от BESSON_off Посмотреть сообщение
Офигеть, насколько интересный язык

Не по теме:

А то! Поговаривают, что на C++ написана вся Вселенная.

0
korvin_
1940 / 1425 / 226
Регистрация: 28.04.2012
Сообщений: 5,095
07.08.2013, 22:45 #9
Цитата Сообщение от ching0n Посмотреть сообщение
А то! Поговаривают, что на C++ написана вся Вселенная.

Не по теме:

В первый раз такое слышу. http://xkcd.ru/224/ =)

0
ching0n
3 / 3 / 1
Регистрация: 06.08.2013
Сообщений: 23
07.08.2013, 22:55 #10
korvin_,

Не по теме:

Первоначально представлял собой C + ООП + тележка разных прелестей. Ныне же, со всеми доработками и библиотеками, абсолютно всеобъемлющ, поэтому предположительно является языком, на котором Б-г написал Вселенную. (http://lurkmore.to/C%2B%2B)

0
BESSON_off
08.08.2013, 20:07  [ТС]
  #11

Не по теме:

А вот вики на него что-то косо смотрит...

0
ching0n
08.08.2013, 20:17
  #12

Не по теме:

BESSON_off, где вики косо смотрит? Прочитал введение -- ничего не нашёл.

0
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 351
09.08.2013, 18:42  [ТС] #13
Цитата Сообщение от ching0n Посмотреть сообщение

Не по теме:

BESSON_off, где вики косо смотрит? Прочитал введение -- ничего не нашёл.

Читайте раздел 8 (Достоинства языка и его критика).
0
0x10
2483 / 1658 / 249
Регистрация: 24.11.2012
Сообщений: 4,133
09.08.2013, 18:45 #14
Цитата Сообщение от BESSON_off Посмотреть сообщение
Читайте раздел 8 (Достоинства языка и его критика).
Нет идеальных инструментов.
0
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 351
10.08.2013, 19:55  [ТС] #15
Так на меня эти мнения и не повлияли, я представляю возможности этого языка, и поражаюсь им
0
10.08.2013, 19:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2013, 19:55
Привет! Вот еще темы с ответами:

Три ученика и три языка. Определить кто на каком программирует. - C++
Решите задачи на C++(в виде кода программы) 3.Три ученика (Коля, Петя и Сережа) умеют писать программы на трех языках программирования...

Найти три максимальных и три минимальных значения 10 случайных чисел - C++
помогите написать программку.

В интервале от 1 до 100, вывести все числа, кроме делящихся на три или имеющих в записи цифру три - C++
вывести цикл от 1 до 100, так чтобы числа имеющие 3 или которые можно разделить на 3 не выводились. пробовал через массивы, но нужно по...

Создать строку: с начало три символа первой строки, потом эти же три символа в обратном порядке - C++
Помогите пожалуйста! Ввести строку символов. Создать новую строку следующим образом: с начало три символа первой строки, потом эти же три...


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

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

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