Prev Next Up Title Contents Index

Tietueessa funktioita (method, member function)

C++:ssa tietueeseen voidaan kirjoittaa alkioiden (attribuuttien, data members) lisäksi tietueen alkioita käsitteleviä funktioita - jäsenfunktioita (metodeja, luokan funktioita - methods, member functions) joko tavallisesti:

piste2.cpp - malli jäsenfunktiosta (metodista)

	/* PISTE2.CPP, ei INLINE -muoto */
	#include <stdio.h>
	
	struct cPiste {
	  int x,y;
	  void tulosta() const;
	};
	
	void cPiste::tulosta() const
	{
	  printf("(%d,%d)\n",x,y);
	}
	
	int main(void)
	{
	  cPiste p={3,2};
	  p.tulosta();
	  p.x = 7; p.y = 1;
	  p.tulosta();
	  return 0;
	}
tai jommassa kummassa INLINE-muodossa:

pistei1.cpp - malli inline-funktiosta

	/* PISTEi1.CPP, INLINE -muoto 1 */
	#include <stdio.h>
	
	struct cPiste {
	  int x,y;
	  void tulosta() const;
	};
	
	inline void cPiste::tulosta() const
	{
	  printf("(%d,%d)\n",x,y);
	}

pistei2.cpp - malli inline-funktiosta

	/* PISTEi2.CPP, INLINE -muoto 2 */
	#include <stdio.h>
	
	struct cPiste {
	  int x,y;
	  void tulosta() const {
	    printf("(%d,%d)\n",x,y);
	  }
	};
Kaikkia funktion tulosta esittelymuotoja kutsutaan samalla tavalla. Määrittely const funktioiden nimen perässä tarkoittaa sitä, että funktiot eivät muuta (eivätkä voikaan muuttaa) itse oliota.

Huomautus! Vaikka tässä monisteessa tilan säästämiseksi usein käytetäänkin inline- muotoa 2, kannattaa oikeassa ohjelmassa ehdottomasti kirjoittaa metodit luokan esittelyn ulkopuolelle. Jos nopeussyistä inline todetaan tarpeelliseksi, voidaan muutos tehdä helposti muodolla 1.


Prev Next Up Title Contents Index