2012-02-02 7 views
1

Page 클래스의 함수를 사용하고 싶습니다. 그러나이 클래스에서 상속하지 않으려합니다. 상식을 사용하지 않고 내 elementelementX 클래스 onPage(vector<string> vec) 함수를 사용할 수있는 또 다른 방법이 있습니까? 협회가 도움이 되겠습니까? 나는 그것을 생각하고 있었다.다른 클래스의 함수 호출

코드는 다음과 같습니다 :

class Page 
{ 
    string str; 
    vector<string>::iterator it; 

    void onPage(vector<string>vec); 
}; 

class element 
{ 
    Page p; 
}; 

class elementX : public element 
{ 
}; 

답변

2

그래서 외국 클래스에 액세스 할 수 있습니다, 그것은 public를 선언합니다.

class Page 
{ 

    string str; 
    vector<string>::iterator it; 

public: 
    void onPage(vector<string>vec); 


}; 

(당신은 그들 모두를 읽을 수 있는지 확인하십시오, 클래스 멤버에 대한 액세스를 제어 할 public, privateprotected를 사용할 수 있습니다. private 클래스의 기본값입니다).

1

예. 가능합니다. 내가 볼 수있는 문제는 클래스 멤버가 C++에서 private (다른 클래스에서는 숨김)이므로 기본적으로 void onPage(vector<string>vec); 함수를 공용으로 선언하지 않았다는 것입니다 (함수 앞에 public: 자리 표시).

+0

고마워요. 고맙습니다. 덕분에 필자는 요소 클래스에서 onPage (벡터 ) 기능을 사용할 수있게되었습니다. – CodersSC

+0

정확합니다. 또 다른 옵션은'element' 클래스를 Page의'friend'라고 선언하는 것입니다 ('Page' 안에'friend class element')하지만 매우 나쁜 스타일이 될 것입니다. –