C++ 友元

C++友元

友元函数:

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

复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值