우원 함수 우원류 및 용법

1839 단어
유원 함수는 액세스 클래스 내부의 개인 구성원을 수정할 수 있습니다.
유원 함수의 매개 변수 중 하나는 클래스 요소, 클래스 지침 또는 클래스 인용으로 특정한 대상의 클래스 개인 구성원을 수정하는 것을 의미한다(대상은 일반적으로 클래스 개인 구성원에 접근할 수 없다).
 
 
만약에 F클래스가 A클래스의 유원류라면 F클래스의 모든 구성원 함수는 A클래스의 유원함수이다. F클래스에서 A클래스의 대상 a를 설명하고 F클래스 내부에서 이 대상 a는 A클래스의 개인 구성원을 직접 방문할 수 있다.
유원 클래스는 일반적으로 데이터 조작이나 클래스 간에 정보를 전달하는 보조 클래스로 설계된다
 
 
#include "iostream"
using namespace std;

class A1
{
public:
	A1()
	{
		a1 = 100;
		a2 = 200;
	}
	int getA1()
	{
		return this->a1;
	}
	// 
	friend void setA1(A1 *p, int a1); // 
	
protected:
private:
	int a1;
	int a2;
};

void setA1(A1 *p, int a1)
{
	p->a1 = a1;
}
//friend  。。。。
//friend 
//why   java class
//java---》1.class==》class==>java 
//java  sun jdk api

//cc++ 1 gcc -E 2  gcc -i 3 gcc -c 3、 ld ===》 
//friend 
// 。。。。。
//const   c
//register
//typedef   

void main11()
{
	A1 mya1;
	cout<<mya1.getA1()<<endl;
	setA1(&mya1, 300);
	cout<<mya1.getA1()<<endl;

	system("pause");
}

class A
{
	//b a 	
	friend class B;
public:
	void display()
	{
		cout<<x<<endl;
	}

protected:
private:
	int x;
};

class B
{
public:
	void setA(int x)
	{
		Aobj.x = x;
	}
	void printA()
	{
		cout<<Aobj.x<<endl;
	}
protected:
private:
	A Aobj;

};

void main()
{
	B b1;
	b1.setA(100);
	b1.printA();
	system("pause");
}

좋은 웹페이지 즐겨찾기