在继承之外,在C++中一个类成员函数调用另一个类成员的方法主要有:类的组合,友元类,类的前向声明,单例模式等,下面主要讲讲这4种方法的实现
方法1:利用类的组合
组合通俗来讲就是类B有类A的属性,如声明一个Person类,再声明一个Teacher类,Person类对象有年龄和姓名成员,而Teacher类对象成员也有年龄和姓名属性,所以我们可以将类Person的对象作为类Teacher的成员变量,那么就实现了Teacher类对象也有这两个属性。如下所示:
#include<iostream>
#include<string>
using namespace std;
class Person
{
public:
Person(int _age, string _name) :age(_age), name(_name) {}
~Person() {};
void print()
{
cout << name<<" " << age << endl;
}
private:
int age;
string name;
};
class Teacher
{
public:
Teacher(Person* _person) :person(_person) {}
~Te