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

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

Войти
Регистрация
Восстановить пароль
 
Tamoren
0 / 0 / 0
Регистрация: 08.01.2012
Сообщений: 37
#1

Объясните пожалуйста - C++

09.01.2012, 04:39. Просмотров 279. Ответов 0
Метки нет (Все метки)

Получилось довольно много вопросов, накопилось пока читал книгу. Отблагодарю, как смогу за любую информацию
Вот они:
первый,

Как вообще возможно существование структур, содержащих указатели на самих себя?
C++
1
2
3
4
5
struct mystruct{
   int a;
   char ch;
   mystruct* sptr; // Указатель на объекты типа mystruct
};
Например, если нам нужно вычислить место, занимаемое mystruct в памяти, получается рекурсия!
второй,

Как объявить битовое поле с помощью перечисления?
третий,

В приложении 1 есть пример использования битовых полей. В выделенной строке структуре присваивается бит, полученный из функции. (Кстати, как функция может вернуть БИТ?) Чтобы обеспечить возможность такого присваивания, функция должна возвращать значение такого же типа, как принимающий его объект структуры. Почему же возможно обойтись и без этого, так, как описано в приложении 1? По аналогии написал программу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    struct {
        binary digit0:1;
        binary digit1:1;
        binary digit2:1;
        binary digit3:1;
        binary digit4:1;
        binary digit5:1;
        binary digit6:1;
        binary digit7:1;
    } str;
    
    str = 'A';
    cout << "A: ";
 
    if(str.digit0) cout << 1;
    if(str.digit1) cout << 1;
    if(str.digit2) cout << 1;
    if(str.digit3) cout << 1;
    if(str.digit4) cout << 1;
    if(str.digit5) cout << 1;
    if(str.digit6) cout << 1;
    if(str.digit7) cout << 1;
Но она не компилируется с ошибкой
Код
C2679: binary '=' : no operator defined which takes a right-hand operand of type 'const char' (or there is no acceptable conversion)
четвертый,

В приложении 2 приведен код программы использующей объединение для перестановки двух байтов (sb.ch[0] и sb.ch[1]) в рамках короткого целого значения (sb.num = 15). 15 == 1111d, тогда в sb.ch[0] будет 00000000, а в sb.ch[1] - 00001111. Но тогда при выводе начального состояния битов будет выведено 00001111 00000000, а не 00000000 00001111. Почему же все-таки получается так, как описано в приложении 2?
пятый,

Возможна ли такая запись mystruct.elem[1] =5 ? Есть да, то что это будет значить?
Присвоения значения 5 второму элементу массива elem, являющегося членом структуры mystruct?
шестой,

Что происхот при:
C++
1
2
    int* p = NULL;
    cout << *p;
Другими словами, на что ссылается нулевой указатель? Компилятор ошибок не выдает.
седьмой,

Почему нельзя размещать код в заголовочных файлах?
восьмой.

C++
1
2
3
4
5
#ifndef _MYCLASS_H
    #define _MYCLASS_H  class myclass{
                        //Описание класса
                    };
#endif
Сказано, что заголовочные файлы обычно включают специальные константы (sentry), которые сообщают компилятору, что файл уже обработан и повторное включение не требуется.
Поправьте если не так, если _MYCLASS_H было определено как "class myclass{//Описание класса};", как в примере, то в тексте программы _MYCLASS_H заменяется на "class myclass{//Описание класса};" (без кавычек). И ещё, если _MYCLASS_H - макроимя, то не следует ли объявление класса заключить в круглые скобки?


 Комментарий модератора 
Перечитайте правила, одна тема - один вопрос. И незачем вопросы под cut прятать. Опять же названия тем должны быть осмысленными. Эта тема закрыта, оформляйте темы, как положено.
0
Миниатюры
Объясните пожалуйста   Объясните пожалуйста  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2012, 04:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объясните пожалуйста (C++):

Объясните пожалуйста - C++
Есть код : char text=&quot;In&quot;; int a=sizeof(text); Вопрос : почему a = 3 ? ( там 2 символа вроде как )

Объясните пожалуйста - C++
Как работает эта программа? #include &lt;iostream&gt; using namespace std; int main() { char mas1;

Объясните пожалуйста - C++
Разбор исходного текста на языке программирования. Выделение в исходном коде программы ключевых слов языка и операторов языка по словарю....

Объясните, пожалуйста - C++
Всё читал, читал и никак не нашел внятного ответа на два вопроса: для чего нужна перегрузка операторов и для чего нужны виртуальные...

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

объясните пожалуйста - C++
для чего нужны библиотеки stdafx.h и iomanip.h?

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2012, 04:39
Привет! Вот еще темы с ответами:

объясните пожалуйста - C++
как программировать по формуле?

Объясните пожалуйста - C++
char str; int count = 0; cout &lt;&lt; &quot;Enter string:&quot; &lt;&lt; endl; cin.getline(str, 255); for (int i = 0; str; i++) { ...

Объясните пожалуйста - C++
объясните пожалуйста: что такое perf(k) ? Почеиу в коде именно int i=1;i&lt;=k/2;i++ а не i&lt;=k; i++ ? ...

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


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

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

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