C++ 友元

送分小仙女□ 提交于 2019-12-04 16:26:49

友元函数:

class Time {
    friend void printTime(Time &t);
public:
    Time(int hour, int min, int sec);

private:
    int m_hour;
    int m_min;
    int m_sec;

};
Time::Time(int hour, int min, int sec) {
    m_hour=hour;
    m_min=min;
    m_sec=sec;
}

测试:

void printTime(Time &t){
    cout <<t.m_hour<<":"<<t.m_min<<":"<<t.m_sec<<endl;
}

int main() {
    Time t(4,5,6) ;
    printTime(t);
    return 0;
}

友元类

#include <iostream>
#include <typeinfo>
/**
 * 友元函数
 */

using namespace std;

class Match;

class Time {
    friend Match;//友元类的声明
public:
    Time(int hour, int min, int sec);


private:
    void printTime();

    int m_hour;
    int m_min;
    int m_sec;

};

class Match {
public:
    Match(int hour, int min, int sec);

    void testTime();

private:
    Time m_timer;
    int m_hour;
    int m_min;
    int m_sec;
};

Time::Time(int hour, int min, int sec) {
    m_hour = hour;
    m_min = min;
    m_sec = sec;
}

void Time::printTime() {
    cout << m_hour << ":" << m_min << ":" << m_sec << endl;
}

Match::Match(int hour, int min, int sec) : m_timer(hour, min, sec) {

}

void Match::testTime() {
    m_timer.printTime();
    cout << m_hour << ":" << m_min << ":" << m_sec << endl;
}

int main() {
    Match m(5, 43, 33);
    m.testTime();
    return 0;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!