C++/Language/this — различия между версиями


Deprecated: Constant E_STRICT is deprecated in /var/www/cppe.ru/www/includes/exception/MWExceptionHandler.php on line 179

Deprecated: Creation of dynamic property PPDStack::$accum is deprecated in /var/www/cppe.ru/www/includes/parser/Preprocessor_DOM.php on line 803

Deprecated: Constant E_STRICT is deprecated in /var/www/cppe.ru/www/includes/exception/MWExceptionHandler.php on line 179

Deprecated: Constant E_STRICT is deprecated in /var/www/cppe.ru/www/vendor/mediawiki/at-ease/src/Functions.php on line 48
Материал из C\C++ эксперт
Перейти к: навигация, поиск
м (1 версия: Импорт контента...)
 
м (1 версия: Импорт контента...)
 
(нет различий)

Текущая версия на 10:28, 25 мая 2010

The this Pointer

#include <iostream>
using namespace std;
class Power {
  double b;
  int e;
  double val;
public:
  Power(double base, int exp);
  double getPower() { 
     return val; 
  }
};
Power::Power(double base, int exp)
{
  b = base;
  e = exp;
  val = 1;
  if(exp==0) 
     return;
  for( ; exp>0; exp--) 
     val = val * b;
}
int main()
{
  Power x(4.0, 2), y(2.5, 1), z(5.7, 0);
  cout << x.getPower() << " ";
  cout << y.getPower() << " ";
  cout << z.getPower() << "\n";
  return 0;
}


Use "this" pointer.

#include <iostream>
using namespace std;
class myclass {
  int a, b;
public: 
  myclass(int n, int m) { 
     this->a = n; 
     this->b = m; 
  }
  int add() { 
     return this->a + this->b; 
  }
  void show();
};
void myclass::show()
{
  int t;
  t = this->add(); // call member function
  cout << t << endl;
}
int main()
{
  myclass ob(10, 14);
  ob.show();
  return 0;
}