自动调用成员函数在类中

时间:2016-03-28 12:38:48

标签: c++

我正在学习c ++;最近我遇到了一个代码,其中代码的公共成员函数被自动调用。我对构造函数有共同的想法,但我认为它与该主题无关;

这是代码:

#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;
}

我的问题是:为什么会调用void seTemperature(int temp)和seHumidity(int humidity)函数?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在这个例子中没有调用这两个函数。请参阅:http://cpp.sh/8te7

但是,两个类的构造函数(Humidity(int)Temperature(int)已被调用,并且它们正在执行某些操作,它们正在执行与您提到的两个函数类似的操作(seHumidityseTemperature)。