2016-03-28 28 views
-1

C++ öğreniyorum, geçenlerde kodun genel üye işlevlerinin otomatik olarak çağrıldığı bir kodla karşılaştım.i Kurucular hakkında ortak bir fikrim var, ama bu konuyla ilgili olmadığını düşünüyorum ; void seTemperature (int temp) ve seHumidity (int nem) işlevi neden çağrıldığını:sınıfında otomatik arama üye işlevleri

#include <iostream> 
using namespace std; 
class Humidity; 
class Temperature 
{ 
private: 
    int m_temp; 
public: 
    Temperature(int temp=0) 
    { 
     m_temp = temp; 
    } 
    void seTemperature(int temp) 
    { 
     m_temp = temp; 
    } 
    friend void printWeather(const Temperature &temperature, 
          const Humidity &humidity); 
}; 
class Humidity 
{ 
private: 
    int m_humidity; 
public: 
    Humidity(int humidity=0) 
    { 
     m_humidity = humidity; 
    } void seHumidity(int humidity) 
    { 
     m_humidity = humidity; 
    } friend void printWeather(const Temperature &temperature, 
           const Humidity &humidity); 
}; 
void printWeather(const Temperature &temperature, const Humidity &humidity) 
{ 
    std::cout << "The temperature is " << temperature.m_temp <<" and the humidity is " << humidity.m_humidity << '\n'; 
} 
int main() 
{ 
    Humidity hum(10); 
    Temperature temp(12); 
    printWeather(temp, hum); 
    return 0; 
} 

benim sorum şudur: Burada

kodudur? herhangi bir yardım takdir edilecektir.

+1

neler Bu fonksiyonların çağrıldığını gerçekten düşünür müsünüz? –

+0

Bu fonksiyonlar çağrılmayacaktır: – SolaGratia

+0

10 ve 12 değeri, fonksiyonların çağrıldığını düşünen bir çıkıştır. Kurucular hakkında eğer kurucular kullanmak istiyorum eğer daha sonra işlev adı ve sınıf adı aynı olmalıdır .. ve burada cons düşünüyorum İlk olarak değişkenlere 0 atamak için tructors'lar kullanılır, 10 ve 12'nin nasıl atandığını anlayamaz mısınız? – Rashik

cevap

0

Bu örnekte iki işlevde arı aranmıyor. Bu bakınız:. http://cpp.sh/8te7

Ancak kurucular (Humidity(int), iki sınıfın Temperature(int) denilen edilmiş ve bir şeyler yaptıklarını ve onlar Bahsettiğiniz iki fonksiyonları (seHumidity, seTemperature) benzer bir şey yapıyorlar

+0

Teşekkürler, anladım .. – Rashik

İlgili konular