인스턴스 변수는 int 또는 double과 같은 간단한 데이터 유형이라고 생각합니다. 객체가 생성 될 때 자동으로 생성되는 모든 것.인스턴스 변수의 정확한 정의는 무엇입니까?
개체가 NEW 키워드로 수행되는 모든 작업과 마찬가지로 추가 개체를 만드는 경우에는 인스턴스 변수가 아닙니다.
내가 옳은가요? 정확한 정의는 무엇입니까?
인스턴스 변수는 int 또는 double과 같은 간단한 데이터 유형이라고 생각합니다. 객체가 생성 될 때 자동으로 생성되는 모든 것.인스턴스 변수의 정확한 정의는 무엇입니까?
개체가 NEW 키워드로 수행되는 모든 작업과 마찬가지로 추가 개체를 만드는 경우에는 인스턴스 변수가 아닙니다.
내가 옳은가요? 정확한 정의는 무엇입니까?
틀린. 인스턴스 내에서 바인딩 된 모든 것 (즉, 인스턴스화 된 객체)은 인스턴스 변수입니다. 클래스에 바인딩 된 정적 (클래스) 변수의 반대입니다. 단순한 유형 또는 객체에 대한 포인터인지는 중요하지 않습니다.
개체가 생성하는시기와 위치에 따라 다릅니다. 클래스 수준에서 선언되지만 인스턴스화 후에 만 작성된 경우에도 인스턴스 변수입니다. 함수 내에서 선언되고 작성된 경우에는 인스턴스 변수가 아니라 지역 변수입니다.
인스턴스 변수 (일명. 필드)가 로컬 스택 프레임에 속하는 클래스 국소 변수에 속하는 정적 변수 반대 인 인스턴스에 속하는 변수이다.
사용자 정의는 유형의 인스턴스 인 오브젝트을 정의합니다. Wikipedia에서
는 (당신은 정확한 정의를 요구) : 클래스와 객체 지향 프로그래밍에서
는, 인스턴스 변수는 클래스의 각 개체는 별도의를 갖고있는 클래스에 정의 된 변수입니다
부.인스턴스 변수는 변수 변수 과 반대이며 인스턴스 멤버 인 유형입니다.
인스턴스 변수는 클래스 인스턴스와 연관 될 수있는 변수입니다. 예를 들어, 당신이
class A
{
private:
int m_a;
double m_b;
int* m_c;
};
가 있고 객체 (A)의 (즉, 인스턴스) m_a, m_b의 인스턴스를 생성하는 경우, m_c 생성과 연관된 경우. 그래서 이들은 인스턴스 변수가됩니다. 동시에 클래스 내에 정적 변수가있는 경우 정적 변수 인스턴스는 클래스의 각 객체와 연결되지 않으므로 인스턴스 변수가 아닙니다. NEW 또는 스택 객체 생성은 객체를 만드는 방법 일 뿐이며 인스턴스 변수와 아무런 관련이 없습니다.
class A {
int a;
Foo *f;
static int b;
};
a
은 인스턴스 변수입니다. b
은 그렇지 않습니다. 포인터 f
은 인스턴스 변수 자체이기 때문에 f
(new
으로 생성됨)이 가리키는 개체는 인스턴스 변수가 아니기 때문에 변수가 아니기 때문에 인스턴스 변수가 아닙니다. 이는 여전히 인스턴스 상태의 일부분이더라도 마찬가지입니다.
+1 포인터와 개체를 구별하기 위해 +1하지만 개체는 여전히 변수입니다. 나는 A :: add (Foo *) [즉, A 범위 밖에서 생성]로 설정된 링크 된 목록의 첫 번째 노드에 대한 포인터를 상상할 수 있습니다. * 모든 * 해당 목록의 노드는 변수이지만 인스턴스가 아닙니다. 계급도 아니다. – paxdiablo
그러나 이것들은 동일한 객체를 가리키고/참조하는 변수 일뿐입니다. 개체는 단지 메모리에있는 바이트입니다. A의 범위 밖에서 동일한 객체를 가리키는 변수가있을 수 있지만 *이 변수는 객체가 아니라 변수입니다. –
표준은 "변수가 객체의 선언에 의해 소개되고 변수의 이름은 객체를 나타냅니다"라고 말합니다. 새로운 객체가 있다면 그 객체는 선언되지 않았습니다. 나는 체커가 옳다고 생각한다. 객체는 단지 메모리의 범위에 불과하지만 (C와는 반대로 항상 C++과 연관된 타입을 가짐) –
OOP 개념에 익숙하지 않지만 최선을 다할 것입니다.
예, 인스턴스 변수는 일반적인 데이터 유형의 변수이지만 BELONG은 특정 OBJECT 인스턴스에 속합니다. 인스턴스 변수는 객체의 "특성"또는 "속성"을 설명하는 변수입니다. 예 : carColor, carName은 객체 차의 특성을 설명하기 때문에 "Car"클래스의 인스턴스 변수가 될 수 있습니다.
새 개체가 키워드 "new"로 인스턴스화되면 모든 인스턴스 변수가 개체에 자동으로 연결되고 세 번째로 추적 할 수 있습니다. 예 :
var에 카라 = 새 차 carA.carName = "혼다" carA.carColor = "블루"
VAR 수화물 = 새 차 carA.carName = "오스틴" carA.carColor = "레드"
어떤 정의를 원하십니까? 언어 독립적 또는 C++ 특정? 후자의 경우 비 정적 데이터 멤버의 정의가 있습니다. 그러나 C++에서 내가 아는 "인스턴스 변수"에 대한 정의는 없습니다. 임시로 +1 –