Kezdőoldal » Számítástechnika » Programozás » Megfelelő az alábbi C++ kód?...

Megfelelő az alábbi C++ kód? Elvileg lefut hiba nélkül, de nem vagyok benne biztos, hogy helyes ez a használat.

Figyelt kérdés

int a = 10;


class myclass {

public:

void myfunc(int b, int d = a);

};



2012. aug. 21. 20:38
 1/3 anonim ***** válasza:
Ezt mire szeretnéd használni?
2012. aug. 21. 20:52
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:
Nem mindegy? Az a lényeg, hogy mit lehet megadni egy osztály tagfüggvényében, mint default argumentum. Konstanson kívül mást is lehet? Tudtommal lehet static tagváltozót, de nem tudom, hogy globális változót lehet-e?
2012. aug. 21. 20:58
 3/3 anonim ***** válasza:

Helyes, a default paramétereket behelyettesíti a fordító.


#include <iostream>

using namespace std;

int a = 10;

class myclass {

public:

void myfunc(int b, int d = a){cout << b << "," << d << endl;};

};


int main(){

myclass o;

o.myfunc(2);//o.myfunc(2,a);

a=7;

o.myfunc(5);//o.myfunc(5,a);

o.myfunc(1,3);

}


A metódus nem tudja eldönteni hogy o.myfunc(2) vagy o.myfunc(2,a)-val lett meghívva mivel ezt fordítási időben történik, a fordító minden o.myfunc(2) o.myfunc(2,a)-ra cserél.

2012. aug. 21. 21:11
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!