Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2009, 20:16   #1
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
Вопрос Вопросы новичка в C++. Часть 2

В ходе дальнейшего изучения появилось еще несколько вопросов:
1) Как объявить массив [-10..10], т.е. с произвольного номера?
2) Что лучше использовать: System::Console::WriteLine/ReadLine или std::cin/cout?
3) Почему в Visual Studio нужно писать #include "stdafx.h", а в Builder'е не нужно? и почему не <stdafx.h>?
4) Попробовал сделать что-нибудь визуальное . Почему при доступе к членам компонента пишется ->, а не .? Насколько я понял, "стрелочка" используется для доступа к членам класса, которые находятся в куче, или я не прав?
k1r1ch вне форума Ответить с цитированием
Старый 04.12.2009, 20:26   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

1) То есть?..
Код:
int n[20];
int* m = &n[10];
m[-4] = 10;  // очепятался
?
2) Если писать на C++, то только std::cin/cout, если же на MC++(.NET), то лучше System::Console::WriteLine/ReadLine.
3) Писать это не обязательно, если отключить в настройках проекта предкомпилированные заголовки. В борланде иная система, там предкомпилированные заголовки задаются прагмой, точно не помню какой(#pragma hdrstop ?). В кавычках, потому что stdafx.h должен находится в папке с проектом
4) Верно почти, но не обязательно в куче. Стрелочка - доступ к членам класса/структуры по указателю, а точка по объекту класса/структуры
Код:
struct Record {
    int n;
};

int main()
{
     Record O;
     Record* o = &O;

     O.n = 10;
     o->n = 20;

     return 0;
}

Последний раз редактировалось netrino; 04.12.2009 в 20:34. Причина: поправил ошибку
netrino вне форума Ответить с цитированием
Старый 04.12.2009, 20:34   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

1) Есть в паскале такое дело. Но в C++ нумерация элементов массива всегда идет начиная с нулевого элемента.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 04.12.2009, 20:37   #4
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

1) Ну вот в Pascal'е я могу написать:
Код:
Arr: array [-20..20] of integer;
То есть 41 элемент от -20 до 20. Вот такое на C++ хотелось бы
Цитата:
Сообщение от Гром Посмотреть сообщение
1) Есть в паскале такое дело. Но в C++ нумерация элементов массива всегда идет начиная с нулевого элемента.
А... ну ладно тогда
2) А если пишу через Visual Studio для Винды, то MC++ используется?
3) А где там? И есть какие-нибудь минусы у отключения?
4) То есть все компоненты висят в динамической памяти? Зачем их так?
k1r1ch вне форума Ответить с цитированием
Старый 04.12.2009, 20:42   #5
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Сообщение от k1r1ch Посмотреть сообщение
1) Ну вот в Pascal'е я могу написать:
Код:
Arr: array [-20..20] of integer;
То есть 41 элемент от -20 до 20. Вот такое на C++ хотелось бы

А... ну ладно тогда
2) А если пишу через Visual Studio для Винды, то MC++ используется?
3) А где там? И есть какие-нибудь минусы у отключения?
4) То есть все компоненты висят в динамической памяти? Зачем их так?
1.В С++ такого сделать нельзя.Объявляй массив на 41 элемент и там расчитывай.
2.Можно и то и то использовать
3.Выбирай Empty Project и всё
4.Указатель это не динамическая память а это переменная в которой хранится адрес по которому лежит твоя переменная.
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 04.12.2009, 20:44   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

2) MC++ можете использовать, а можете и не использовать - Ваше дело )
Если всё таки есть желание использовать .NET, то создавайте C++/CLR проект, но не стоит забывать, что для этого требуется .NET Framework
3) Там - в борланд билдере ). Предкомпилированные заголовки нужны в больших проектах для ускорения компиляции, в малых проектах минусов нет.
4) У этого есть свои плюсы ) Например длительное время жизни и малое потребление стека

...

подзапоздал )
netrino вне форума Ответить с цитированием
Старый 04.12.2009, 20:49   #7
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

Цитата:
Сообщение от k1r1ch Посмотреть сообщение
4) То есть все компоненты висят в динамической памяти? Зачем их так?
Перепутал, хотел сказать зачем через указатели к ним доступ, а не как обычно...
То есть если MC++ использовать, то NETFramework надо?! Нее, не буду я его использовать
k1r1ch вне форума Ответить с цитированием
Старый 04.12.2009, 20:52   #8
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Сообщение от k1r1ch Посмотреть сообщение
Перепутал, хотел сказать зачем через указатели к ним доступ, а не как обычно...
То есть если MC++ использовать, то NETFramework надо?! Нее, не буду я его использовать
Почитай лучше ты про указатели,много нового узнаешь.
NETFramework нужен если ты пишешь под .NET (С# или C++/CLR) а ты пишешь на C++ и не нужен тебе фреймворк
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 04.12.2009, 20:56   #9
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

Не, про указатели то я читал и даже знаю, что такое ссылки . Просто в чем преимущество работы через указатели?
k1r1ch вне форума Ответить с цитированием
Старый 04.12.2009, 20:56   #10
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Ну например...Как в С++ приставлена строка?Она представлена указателем на первый символ строки,а конец этой строки символ '\0'.Тоже самое и с массивами.Они представлены как указатель на первый элемент.
В библиотеке STL есть аналоги строк(string) и массивов(vector) c ними уже работать надо без указателей
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопросы новичка про C++ k1r1ch C++ Builder 5 25.11.2009 15:11
Вопросы новичка(C++) NetGod Общие вопросы C/C++ 22 17.04.2009 22:49
Часть фона одним цветом а другая часть другим (без таблиц). Lanselot HTML и CSS 4 25.04.2008 18:41
Вопросы новичка! Dimixis Помощь студентам 16 19.06.2007 10:35