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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.03.2009, 17:31   #1
z3rg
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 25
По умолчанию как использовать указатель this

помогите разобратся как вобще и где использовать указатель this.

в книжке что у меня пример cout<<"Title:"<<this->Title;
пример не наглядный, и я из этого ничего не понял, как его использовать???

Можите привисти свои примеры с толкованием, буду очень благодарен.

или на примере
Код:
# include <iostream.h>
# include <string.h>
# include <iomanip.h>
# include <conio.h>

class massiv
{
int **mas;
int n,m;
public:
massiv();
~massiv();

void summ();
};

massiv::massiv()
{
cout <<"vvedite chislo strok"<<endl;
cin>>n;
cout <<"vvedite chislo stolbcov"<<endl;
cin>>m;

mas=new int *[m];
for(int i=0;i<m;i++){
	mas[i]=new int[n];}

cout <<"vvedite massiv"<<endl;
for(int j=0;j<n;j++){
	for(int i=0;i<m;i++){
		cin >>mas[i][j];
	}
}

}
massiv::~massiv()
{
	delete(mas);
}

void massiv::summ()
{
int *rez,k,sum;
rez=new int[n];

for(int j=0;j<n;j++){
	sum=0;k=0;
	for(int i=0;i<m;i++){
	  if(k==0)
    {
    if(mas[i][j]<0){ k=1; }
    }
	  else { sum=sum+mas[i][j]; }

	}

  rez[j]=sum;
  cout<<"rezultat"<<rez[j]<<endl;
}

}
int main()
{
massiv as;
as.summ();
getch();
return 0;
}
z3rg вне форума
Старый 16.03.2009, 22:30   #2
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Указатель this не явно передается в функцию-член какого-либо класса. Он указывает на объект класса, через который вызвана функция.
Пример: допустим есть класс myCl
Код:
class myCl
{
public:
int a;
void func(int); //Прототип
};
далее в какой-либо функции описываем объект данного класса и вызываем функцию func():
Код:
int main()
{
int x=3;
myCl A;
A.func(x); //вызов функции func;
return 0;
}
Таким образом в функцию func() передается параметр x, а также передается указатель на A (не явно) - это и есть указатель this.
Теперь пример функции func:
Код:
void func(int x)
{
//Сейчас указатель this указывает на A
//Можно это использовать так:
this->a=x;
//Конечно, можно было бы просто написать
//a=x;
//Но в некоторых случаях использование указателя this необходимо
//например в перегрузке операции присваивания,
//для возможности многократного присваивания
}
Основная идея, надеюсь, понятна, дальше можете разбираться на более сложных примерах
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума
Старый 16.03.2009, 23:28   #3
z3rg
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 25
По умолчанию

Blade, спасибо огромное тебе, я уж думал никто не поможет,
а то в книгах пишут вообще не понятно что к чему, респект!
z3rg вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как использовать TrayIcon Волк Общие вопросы Delphi 7 31.03.2012 09:59
Как использовать прокси? Adm Работа с сетью в Delphi 6 14.10.2008 09:18
Как использовать png Sanek777 Общие вопросы Delphi 1 25.09.2008 20:14
Как передать указатель в процедуру??? kate4ka Общие вопросы Delphi 1 17.03.2008 12:49