C++练习题 下载本文

内容发布更新时间 : 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 #include using namespace std; class Engine{ public: class Engine(int x,int y) :m_x(x), m_y(y){}; int Getx() { return m_x; } int Gety() { return m_y; } friend class Fuel; friend void ShowE(Engine &x); private: int m_x; int m_y; };

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 using namespace std; void fn1() { static int n=0; //n = 0; n += 1;

cout << n << endl; }

int main() { int i = 10; while (i--) { fn1(); } return 0; } 5.13

#include using namespace std; class X; class Y{ public: void g(X &a); private: };

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