Pointer nebo reference na property - jak ji získat? – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Pointer nebo reference na property - jak ji získat? – C / C++ – Fórum – Programujte.comPointer nebo reference na property - jak ji získat? – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
hlucheucho+10
Posthunter
15. 11. 2013   #1
-
0
-

Ahoj,

potřebuji aby funkce za svého běhu změnila obsah property komponenty TChart.  Jak předám funkci ukazatel nebo referenci na tuto property? jedná se konkrétně o Fmain->Chart1->LeftAxis->Minimum

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Reklama
Reklama
Martin Kozibrátka0
Stálý člen
15. 11. 2013   #2
-
0
-

Lepší asi bude předat funkci Chart1 a až tam přistupovat k té property.

Nahlásit jako SPAM
IP: 88.83.169.–
Savana.cz - neomezený webhosting za pár kaček :)
Martin Kozibrátka0
Stálý člen
15. 11. 2013   #3
-
0
-

Páč používat odkazy na property by se ti asi nemuselo líbit

class X {
public:
  int a;
  void f(int b) {
    cout << "The value of b is "<< b << endl;
  }
};

int main() {

  int X::*ptiptr = &X::a;
  void (X::* ptfptr) (int) = &X::f;
  X xobject;
  xobject.*ptiptr = 10;

  cout << "The value of pointer is " << xobject.*ptiptr << endl;
  cout << "The value of property is " << xobject.a << endl;

  (xobject.*ptfptr) (20);
}
Nahlásit jako SPAM
IP: 88.83.169.–
Savana.cz - neomezený webhosting za pár kaček :)
Martin Kozibrátka0
Stálý člen
15. 11. 2013   #4
-
0
-

Pokud by jsme ale zvolnili pravidla pointerů tak, aby nemusely vždy ukazovat na property tříd:

#include <iostream>
using namespace std;
class Y
{
public:
	int o;

};


class X {
public:
  int a;
  Y objY;
  void f(int b) {
    cout << "The value of b is "<< b << endl;
  }
};

template<class T>
void ok(T *p)
{
	*p=88;
}

void ko(int *ptiptr)
{
	*ptiptr=78;
}



int main() {

  // declare pointer to data member
  int X::*ptiptr = &X::a;

  // declare a pointer to member function
  void (X::* ptfptr) (int) = &X::f;

  // create an object of class type X
  X xobject;
  int *lo = &xobject.a;
  *lo=10;
  cout << "The value of pointer is " << xobject.a << endl;
  ok(&xobject.objY.o);
  cout << "The value of pointer is " << xobject.objY.o << endl;
  ko(&xobject.objY.o);
  cout << "The value of pointer is " <<xobject.objY.o << endl;

  // initialize data member
  xobject.*ptiptr = 10;

  cout << "The value of pointer is " << xobject.*ptiptr << endl;
  cout << "The value of property is " << xobject.a << endl;

  // call member function
  (xobject.*ptfptr) (20);
}
Nahlásit jako SPAM
IP: 88.83.169.–
Savana.cz - neomezený webhosting za pár kaček :)
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 108 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý