Light Style© by Fisana

Перейти к содержимому


РАММ сервис NordFx: копируй сделки лучших трейдеров форекс


NordFX

Фотография

Начальное обучение (Теория)


  • Пожалуйста, авторизуйтесь, чтобы ответить
34 ответов в этой теме

#31 nsg

nsg

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 105 сообщений

Опубликовано 26 Март 2010 - 05:45

Классы и указатели

На прошлых уроках мы видели только один способ объявления экземпляров класса - а именно мы писали что-то вроде:
CMyClass z;

Вообще же говоря экземпляры класса лучше во многих случаях заводить не в стеке, а в куче (at heap) Это, в частности, связано с тем, что стек - вещь довольно-таки ограниченная по объему, классы же часто представляют из себя довольно-таки большие и сложные объекты, и если вы будете размещать в стеке что-то вроде массива экземпляров класса, то объема стека просто может не хватить (хотя, конечно, для учебных программм это случится навряд ли).

Так же как и для встроенных типов данных для размещения экземпляра класса в куче использется оператор new. Именно он и занимается выделением памяти. Вот пример:
CMyClass * z;
z = new CMyClass; // Непосредственное выделение памяти.

Конструктор класса при этом вызовется на второй строке, т. е. в операторе new.

Эти два оператора можно объединить:
CMyClass * z = new CMyClass; // Непосредственное выделение памяти.

Если в классе есть конструктор с параметрами, то он вызывается примерно так:
// Вызов конструтора с одним параметром.
CMyClass * z = new CMyClass(22);
// Вызов конструтора с двумя параметрами.
CMyClass * z = new CMyClass(22, 44);

Еще одно отличие между двумя способами создания экземпляра класса (в стеке или в куче) - это вызов методов класса. Если при создании экземпляра в стеке между именем экземпляра и именем метода используется точка, то при создании экземпляра класса в куче (т. е. через оператор new) используется стрелочка. Вот пример:
CMyClass * z = new CMyClass;
z->SomeMethod();
ICQ 296461926

#32 programmer

programmer

    пробегал

  • Пользователи
  • Pip
  • 4 сообщений

Опубликовано 09 Июнь 2010 - 02:43

Функции
Функция - это совокупность объявлений и операторов, обычно предназначенная для решения определенной задачи. Каждая функция должна иметь имя, которое используется для ее объявления, определения и вызова. В любой программе на С++ должна быть функция с именем main (главная функция), именно с этой функции, в каком бы месте программы она не находилась, начинается выполнение программы.
Синтаксис функции:
[тип] имя-функции ([список-параметров])
{тело-функции}

Пример:
void main()


В данном случае void main(){} - это процедура, потому что, она не возвращает никакого значения,(void - пустой)
функция обязяна возвращать значение - int main(){return 0;}
или например, с передачей аргументов командной строки - int main(int argc, char* argv[]){return 0;}

#33 programmer

programmer

    пробегал

  • Пользователи
  • Pip
  • 4 сообщений

Опубликовано 09 Июнь 2010 - 03:34

Ещё по поводу указателей, готовая прога, подсчитывает количество символов в строке, написана для того чтобы, показать как указатели работают с памятью.


#include "stdafx.h"
#include <iostream.h>


int main(int argc, char* argv[])
{
char string[] = "good string"; // объявляем строку (массив символов, которые имеют один тип данных char)
char* pointer = NULL; // объявляем указатель типа char, инициализируем нулём (хороший тон)
int counter = 0; // объявляем переменную счётчик, для подсчёта итераций(прохождений) цикла

pointer = string; // устанавливаем указатель на нулевой элемент массива (строки)
while(*pointer != NULL) // *p - указатель разыменован(т.е. по данному адресу берёт значение),
// и двигаем указатель к концу строки, пока он не встретит '\0'
{
pointer++;
counter++;
}

cout << endl << "The string has a " << counter << " symbols " << endl << endl;

return 0;
}

#34 seroyan

seroyan

    записался

  • Пользователи
  • PipPip
  • 13 сообщений

Опубликовано 10 Август 2010 - 02:26

Всем привет! Не подумайте, что я пришел пофлудиться, но я думал, что плюсы для другого идут. а в МТ4 МКюЛ4 ? Что пишеться на плюсах и для чего?

#35 Mr.Bags

Mr.Bags

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 142 сообщений

Опубликовано 16 Август 2010 - 04:34

Всем привет! Не подумайте, что я пришел пофлудиться, но я думал, что плюсы для другого идут. а в МТ4 МКюЛ4 ? Что пишеться на плюсах и для чего?


Формулировка сути вопроса лично мне не до конца ясна. сделайте уточнение.
icq 336674712
skype fx_mr.bags




Посетителей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных пользователей

Рейтинг брокеров форекс: кто лидер, кто аутсайдер и почему?




Masterforex-V NordFX

Rambler's Top100

Принимаем Z-Payment