2013-12-06, 23:03
  #1
Medlem
jag vill anvnda mig utav void Skrivut() fr att f namn och lder att visas p programmet, nu har jag gjort fel och anvnder istllet myPerson.namn och myPerson.lder

men hur gr jag fr att anvnda void SkrivUt() ? ngon som kan hjlpa mig ?

min kod:

#include <iostream>
#include <string>
using namespace std;

class Person
{
public:
string namn;
int lder;

void SkrivUt()
{
string namn;
int lder;
}


};

int main()
{

Person myPerson;
myPerson.namn = "Emil";
myPerson.lder = 25;

cout << "Mannen heter " << myPerson.namn << " och mannen r " << myPerson.lder <<" r gammal"<< endl;
cin.get();
return 0;
}
Citera
2013-12-06, 23:10
  #2
Medlem
Funktionen skriver aldrig ut ngot(ingen cout), du skapar bara tv tempora objekt!

void
Person::SkrivUt() const //Du ndrar inte ngon av klassens datatyper
{
std::cout << name;
std::cout << age;
}
Citera
2013-12-06, 23:29
  #3
Medlem
Citat:
Ursprungligen postat av Rawyon
Funktionen skriver aldrig ut ngot(ingen cout), du skapar bara tv tempora objekt!

void
Person::SkrivUt() const //Du ndrar inte ngon av klassens datatyper
{
std::cout << name;
std::cout << age;
}

nu hnger jag inte riktigt med ? kan du frklara p ett lttare stt mjligtvis ?

ja jag r vldigt ny p programmerings fronten ^^
Citera
2013-12-06, 23:34
  #4
Medlem
t.ex

Kod:
#include <iostream>
#include <string>
using namespace std;

class Person
{
private:
	string name;
	int age;
public:

	void Print()
	{
		cout << "Mannen heter " << name << " och mannen r " << age << " r gammal" << endl;
	}

	string get_name() { return name; }
	void set_name(string set){ name = set; }
	int get_age(){ return age; }
	void set_age(int set){ age = set; }

};

int main()
{
	Person myPerson;
	myPerson.set_name("Emil");
	myPerson.set_age(25);
	myPerson.Print();
	cin.get();
	return 0;
}
Citera
2013-12-06, 23:50
  #5
Medlem
Sitkins avatar
Citat:
Ursprungligen postat av PG-k
t.ex

Kod:
#include <iostream>
#include <string>
using namespace std;

class Person
{
private:
	string name;
	int age;
public:

	void Print()
	{
		cout << "Mannen heter " << name << " och mannen r " << age << " r gammal" << endl;
	}

	string get_name() { return name; }
	void set_name(string set){ name = set; }
	int get_age(){ return age; }
	void set_age(int set){ age = set; }

};

int main()
{
	Person myPerson;
	myPerson.set_name("Emil");
	myPerson.set_age(25);
	myPerson.Print();
	cin.get();
	return 0;
}
Det r inte riktigt getters och setters ts r ute efter.
Citera
2013-12-07, 00:04
  #6
Medlem
tj.s avatar
Citat:
Ursprungligen postat av MaryJaneInMeBrain
nu hnger jag inte riktigt med ? kan du frklara p ett lttare stt mjligtvis ?

ja jag r vldigt ny p programmerings fronten ^^
Din klass Person innehller ju tv attribut, namn resp. lder. Dessa delger du antingen genom getters/setters eller via en konstruktor. I dagslget verkar du delge dem genom att du exponerar medlemsvariablerna, vilket r mindre bra. Men om vi lgger det t sidan s r det enda din Print-funktion ska gra, att skriva ut de tv attributen. Detta gr du m.hj.a. cout som du kan lsa om hr.
Citera
2013-12-07, 00:06
  #7
Medlem
tj.s avatar
Citat:
Ursprungligen postat av Sitkin
Det r inte riktigt getters och setters ts r ute efter.
Men han skrev ju ocks hur Print skulle fungera. Sen kan jag tycka att getter/setter-funktionerna r vettiga att ta med ocks, eftersom det r en mindre bra praxis att exponera medlemsvariabler.
Citera
2013-12-11, 18:59
  #8
Medlem
Lttaste sttet r att anvnda sig utav set/get-funktioner som tidigare kommenterare har skrivit, och sedan anvnda sig utav cout i funktionen du vill ha utskriften i.
Citera
2013-12-11, 19:03
  #9
Medlem
Voldemort2s avatar
Tillggas kan att det r ingen bra praxis att ha publika datamedlemmar. Drfr r getters/setters att fredra.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in