内容发布更新时间 : 2024/11/16 6:41:15星期一 下面是文章的全部内容请认真阅读。
课后题:5-5 5-6 5-7 5-9 5-11 5-12 5-13 5-14 5.4:
#include
void ShowE(Engine &x1) { int x = x1.m_x; cout <<\ \}
class Fuel{ public: void Get(Engine y){ z1 = y.m_y; cout << \ }
private: int z1; };
int main() { Engine E1(1,2); ShowE(E1);//通过友元函数访问E1里面的数据; Fuel F2;
F2.Get(E1);//通过友员类访问E1; return 0; } 5.5
静态数据成员:如果某个属性为整个类所共有,不属于任何一个具体对象,则采用static关键字来声明为静态成员。静态成员在每个类中只有一个副本,由该类的所有对象共同来维护和使用,从而实现同一类的不同对象之间的数据共享。静态数据成员具有静态生命周期。 5.6
静态函数成员:静态函数成可以通过类名或对象名来调用,而非静态成员函数只能通过对象名来调用。静态成员函数可以直接访问该类的静态数据和函数成员。而访问非静态成员函数,必须通过对象名。
5.9: (1):友元关系不能传递;(2):友元关系不能继承;(3):友元关系是单向的; 所以 都不是;
5.11:
N的值是fn1函数里赋的值,把主函数里面的值进行了覆盖;
5.12: 5.12
#include
cout << n << endl; }
int main() { int i = 10; while (i--) { fn1(); } return 0; } 5.13
#include
class Z{ public: void f(X &a); private: };
class X{ public: class X(int i):m_i(i){}; friend void Y::g(X &a); friend class Z; friend void h(X &a); void Show() { cout << m_i << endl; } private: int m_i; };
void Z:: f(X &a) { a.m_i += 5; }
void Y:: g(X &a) { a.m_i += 1; }
void h(X &a) { a.m_i += 10; }