일반 함수 (정적 함수가 아닌)는 C++의 클래스에 대해 하나의 복사본 만 가지므로 모든 개체가 동일한 복사본을 참조합니다. 그렇다면 정상 함수와 정적 함수의 차이점은 무엇입니까? 또한 교사는 "(object_name). (func_name)"표기법을 사용하여 클래스의 정적 함수를 호출 할 수는 없지만 "class_name :(func_name)"을 사용하여 호출해야한다고 말하면서 이것이 논리적이라는 것을 알고 있습니다. 해야 할 일이지만, 언어에 관한 한, (object_name). (func_name) 표기법을 사용하여 정적 함수를 호출 할 수 없습니까? 마지막으로, 클래스의 생성자 또는 클래스의 다른 함수 내부에서 클래스의 정적 데이터 멤버를 초기화 할 수는 없지만 클래스 외부에서 수행해야합니까?C++ 클래스의 함수에는 모든 객체에 대해 하나의 복사본 만 있습니까?
-3
A
답변
4
하나의 사본으로 모든 기능의 메모리 위치가 동일하면 그렇습니다. 차이점은 정적 함수는 개체를 호출하기 위해 인스턴스화 할 필요가 없다는 것입니다. 이것은 또한 클래스의 다른 비 정적 멤버에 액세스 할 수 없다는 것을 의미합니다.
초기화의 경우 정적 멤버에 액세스하는 정적 함수를 호출하려면 미리 호출해야하는 생성자가 필요하므로 생성자에서이를 수행 할 수 없습니다. 이를 보장 할 방법이 없습니다. 생성자 내부에서 정적을 변경할 수 있지만 다른 곳에서는 초기화해야합니다.
이 시나리오에 대한 생각 : (객체)로 함수를 호출에 관해서는
class A
{
static int x;
public:
A()
{
x = 3;
}
static int getX()
{
return x;
}
}
int main()
{
A::getX(); //what would x be here? It hasn't been initialized since A() was not called.
}
(기능) 대신 (클래스)의 :. :(기능), 나는 당신이 그것을 할 수있다 생각하지만, 왜 네가?
관련 문제
- 1. 배열의 모든 객체에 대해 하나의 속성을 출력합니다.
- 2. QLibrary의 해결 된 함수에는 하나의 인수 만 있습니까?
- 3. 두 파생 클래스의 C++ 복사본
- 4. Selenium RC : 모든 테스트에 대해 하나의 브라우저 만 있습니까?
- 5. 하나의 객체에 대해 다중 glBlendFunc
- 6. 하나의 자료 만 여러 객체에 적용됨
- 7. Json 객체에 대해 생성 된 C# 클래스의 장점과 단점
- 8. 동일한 클래스의 모든 객체에 대한 메소드 호출
- 9. tablayout의 모든 탭에 대해 하나의 메뉴가 있습니까?
- 10. PHP - 클래스의 모든 public 속성에 대해 하나의 setter 사용
- 11. GroupControl의 모든 컨트롤에 대해 하나의 foreach 루프 만 만듭니다.
- 12. 모든 클라이언트에 대해 하나의 웹 서비스 인스턴스 만 사용하려면 어떻게합니까?
- 13. const 로컬 복사본 만 읽기
- 14. 레일스 3의 모든 객체에 대해 to_xml을 재정의하십시오.
- 15. 클래스의 읽기 전용 복사본 생성 howto
- 16. 모든 CLR 기능에 대해 하나의 절차가 필요합니까?
- 17. MojoX :: Session에 대해 하나의 전송 유형 만 있습니까?
- 18. Android : 앱에 하나의 Context 객체 만 있습니까?
- 19. 클래스의 모든 인스턴스에 대해 OCMock에서 메소드 조롱
- 20. 매트릭스 패키지에서 "sparseMatrix"클래스의 객체에 대해 QR 분해를 수행하려면 어떻게해야합니까?
- 21. 현재 클래스의 임의의 객체에 대해 itcl :: scope를 호출하는 방법은 무엇입니까?
- 22. Salesforce의 각 유형의 객체에 대해 하나의 관련 목록 레이아웃 만 지원됩니까?
- 23. C# Datatable 로컬 복사본
- 24. C++/CLI - 개체 복사본 만들기
- 25. 클래스의 각 객체에 대한 클로저
- 26. 파이썬에서 모든 새로운 객체에 대해 refs가 2 증가하는 이유는 무엇입니까?
- 27. 모든 요일과 요일이 하나의 열에 만 표시됩니다.
- 28. gridview의 모든 그리드에 하나의 이미지 만 나타납니다.
- 29. Amazon S3가 모든 객체에 대해 고유 한 키를 생성합니다.
- 30. C++ 정적 템플릿 멤버, 각 템플릿 유형에 대해 하나의 인스턴스?
정말 좋은 책을 추천합니다. C++과 관련 될 필요는 없습니다. 먼저 OO의 원칙을 이해해야합니다. 예 : 클래스 란 무엇이며 객체는 무엇입니까? 이것 옆. -1 나쁜 질문입니다. 읽을 수있는 질문을 게시하는 방법을 실제로 배워야합니다. – mkaes
@mkaes, 그리고 어떤 선생님, 내가 객체 지향 프로그래밍의 원리를 이해하지 못한다고 생각하게 만듭니다. 클래스 란 무엇이며 객체는 무엇입니까? 언어에 관한 한, 나는 서둘러 있었기 때문에 나는 몹시 쓴다고 받아 들인다. – SegFault