『C++Primer』読書ノート(6)


1.クラスのデフォルトコンストラクタは、クラスがコンストラクタを定義していない場合に自動的に追加されますが、コンストラクタが定義されている場合は、デフォルトコンストラクタは追加されません.この場合、コンストラクション関数をデフォルトにするには、自分でデフォルトコンストラクション関数を書く必要があります.
2.Friend関数とFriendクラス
// ConsoleApplication1.cpp :              。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

class A
{

private:
	int num;
public:
	void print(){cout<<num<<endl;}
	void setNum(int num){this->num = num;}
	//A      
	friend void printA(A& a){a.print();}
	//  B  A     
	friend class B;
};

class B
{
private:
public:
	//B  A     ,  B          A        
	void printA(A& a){cout<<a.num<<endl;};

};


int _tmain(int argc, _TCHAR* argv[])
{
	A a;
	a.setNum(1);
	B b;
	b.printA(a);
}
プログラムでは、Aの友元関数とAの友元クラスが定義されています.
質問:あるクラスのメンバー関数は別のクラスの友元関数としてどのように定義すればいいか分かりませんが、本の定義に従って間違いがあります.の