我正在学习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)函数?任何帮助将不胜感激。
答案 0 :(得分:0)
在这个例子中没有调用这两个函数。请参阅:http://cpp.sh/8te7
但是,两个类的构造函数(Humidity(int)
,Temperature(int)
已被调用,并且它们正在执行某些操作,它们正在执行与您提到的两个函数类似的操作(seHumidity
, seTemperature
)。