继续学习(挣扎?)
今天内容有 友元(类)对象为指针时的tips
哈 就这些 都是定义及实现
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
class data2;
class data1{
friend class data2;//或者不加calss friend data2 表示data2中要调用data1中的私有成员和保护成员
public:
data1() : x(1){cout << "constructor1 x = " << x << '\n';}
private:
int x;
};
class data2{
//friend class data1; 此句表示data1要调用data2的私有成员和保护成员
public:
data2() : y(2) {cout << "constructor2 y = " << y << '\n';}
void get_data1(const data1& t);
private:
int y;
};
void data2 :: get_data1(const data1& t){//友元类功能体现 传参data1的一个对象 调用此data1对象的私有成员和保护成员
cout << "x = " << t.x << '\n';return;
}
int main(){
data1 a,* p;//在定义*p指针时 并不调用构造函数 因为没有给指针分配内存
p = new data1;//用new函数给指针分配内存并构造对象 此时会调用构造函数进行初始化
delete p;//释放指针
data2 b;
b.get_data1(a);
return 0;
}
Over.