-
class Watch { public: Watch(Time &t):m_tTime(t)//构造函数传入的是Time型的 用&符,因为是私有所以要用初始化列表来初始化 void display() { cout << m_tTime.m_iHour << endl; cout << m_tTime.m_iMinute << endl; cout << m_tTime.m_iSecond << endl; } public: Time m_tTime; };查看全部
-
#ifndef TIME_H #define TIME_H class Match; class Time { friend Match; public: Time(int hour,int min,int sec); private: void printTime(); int m_iHour; int m_iMinute; int m_iSecond; }; #endif #include"Time.h" #include<iostream> #include<stdlib.h> using namespace std; Time::Time(int hour,int min,int sec) { m_iHour=hour; m_iMinute=min; m_iSecond=sec; } void Time::printTime () { cout<<m_iHour<<":"<<m_iMinute<<":"<<m_iSecond<<endl; } #ifndef MATCH_H #define MATCH_H #include"Time.h" class Match { public: Match(int hour,int min,int sec); void testTime(); private: Time m_tTimer; }; #endif #include"Match.h" #include<iostream> using namespace std; Match::Match(int hour,int min,int sec):m_tTimer(hour,min,sec) { } void Match::testTime () { m_tTimer.printTime (); cout<<m_tTimer.m_iHour <<":"<<m_tTimer.m_iMinute <<":"<<m_tTimer.m_iSecond <<endl; }查看全部
-
友元的注意事项查看全部
-
实际定义circle时就是在private下面定义一个Coordinate的对象查看全部
-
将circle 声明为Coordinate的友元类查看全部
-
声明友元类要在类前面声明那个类查看全部
-
#include<iostream> #include<stdlib.h> #include"Time.h" #include"Match.h" using namespace std; //void printTime(Time &t); int main(void) { Time t(3,4,5); Match m; m.printTime(t); // printTime(t); return 0; } //void printTime(Time &t) //{ cout<<t.m_iHour <<":"<<t.m_iMinute <<":"<<t.m_iSecond <<endl;} #ifndef MATCH_H #define MATCH_H class Time;//先声明一下有这个类,示意计算机先用,随后会定义这个类的,使代码 void printTime(Time &t);可以顺利通过 class Match { public: void printTime(Time &t); }; #endif #ifndef TIME_H #define TIME_H #include"Match.h" #include<iostream> using namespace std; class Time { public: friend void Match::printTime(Time &t); Time(int hour,int min,int sec); private: int m_iHour; int m_iMinute; int m_iSecond; }; #endif查看全部
-
#ifndef TIME_H #define TIME_H #include<iostream> using namespace std; class Time { public: friend void printTime(Time &t); Time(int hour,int min,int sec); private: int m_iHour; int m_iMinute; int m_iSecond; }; #endif 全局查看全部
-
friend void printXY(Coordinate &c);//全局 void printXY(Coordinate &c)//printXY()已经声明为Coordinate的友元函数,建议使用&或*效率高 { cout<<c.m_iX<<c.m_iY; } int main(void) {//在main函数中调用printXY函数时 Coordinate coor(3,5);//先实例化Coordinate对象 printXY(coor);//因为需要的参数是一个引用,所以直接传对象名就可以,不用写&符号 return 0; } friend void Circle::printXY(Coordinate &c);//Circle类中的成员函数 //将一个类的成员函数声明为另一个函数的友元函数 class Circle { public: void printXY(Coordinate &c) { cout<<c.m_iX<<c.m_iY; } }; int main(void) { Coordinate coor(3,5); Circle circle; circle.printXY (coor); return 0; }查看全部
-
使用方法查看全部
-
访问私有的或者保护的成员查看全部
-
返回值 return *this查看全部
-
static查看全部
-
静态成员函数查看全部
-
友元函数类外定义不需要加Coordinate::查看全部
举报
0/150
提交
取消