1.类的默认构造函数只是在类没有定义构造函数的时候才自动加上去的,而如果定义了一个构造函数,则不会添加默认构造函数了。此时如果还想要默认构造函数,需要自己写一个默认构造函数。
2.友元函数和友元类
// 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的友元类。
问题:一个类的成员函数作为另一个类的友元函数不知道该怎么定义,按照书上的定义方式会有错误。。。