<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=IndirectVariableAccess</id>
	<title>IndirectVariableAccess - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=IndirectVariableAccess"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=IndirectVariableAccess&amp;action=history"/>
	<updated>2026-05-14T18:05:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=IndirectVariableAccess&amp;diff=32550&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=IndirectVariableAccess&amp;diff=32550&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Indirect Variable Access ==&lt;br /&gt;
인스턴스 변수의 값을 어떻게 얻어오고 어떻게 셋팅해 줄 것인가?&lt;br /&gt;
----&lt;br /&gt;
대부분은 DirectVariableAccess를 사용하면 거의 문제가 없다. 하지만, 각각의 값이 제대로 된것이라는 전제가 되어 있어야 한다. 또한 상속이 될 거 같을때에, DirectVariableAccess는 기능을 바꿔 줄수 없다.&lt;br /&gt;
----&lt;br /&gt;
해결책은 항상 getting/setting 메소드를 사용하는 것이다. 즉,&lt;br /&gt;
이 대신에,&lt;br /&gt;
 Point Point::operator+(const Point&amp;amp;amp; aPoint)&lt;br /&gt;
 {&lt;br /&gt;
 	return Point(x+aPoint.getX(),y+aPoint.getY());&lt;br /&gt;
 }&lt;br /&gt;
이렇게 쓰자는 것이다.&lt;br /&gt;
 Point Point::operator+(const Point&amp;amp;amp; aPoint)&lt;br /&gt;
 {&lt;br /&gt;
 	return Point(getX()+aPoint.getX(),getY()+aPoint.getY());&lt;br /&gt;
 }&lt;br /&gt;
----&lt;br /&gt;
IndirectVariableAccess를 사용함으로써, 가독성과 단순함을 포기해야 한다.&lt;br /&gt;
----&lt;br /&gt;
인스턴스 변수의 접근과 셋팅에 getting method와 setting method를 사용하자.&lt;br /&gt;
----&lt;br /&gt;
Point가 있다.&lt;br /&gt;
 float Point::getX()&lt;br /&gt;
 {&lt;br /&gt;
 	return x;&lt;br /&gt;
 }&lt;br /&gt;
 float Point::setX(float aNumber)&lt;br /&gt;
 {&lt;br /&gt;
 	x = aNumber;&lt;br /&gt;
 }&lt;br /&gt;
상속받은 PolarPoint를 만들고 싶다. x의 값을 얻어올때 재정의를 해주고 싶다.&lt;br /&gt;
 float PolarPoint::getX()&lt;br /&gt;
 {&lt;br /&gt;
 	return radius * cos(theta);&lt;br /&gt;
 }&lt;br /&gt;
----&lt;br /&gt;
두 가지 방법을 혼용해서 쓰지 말자. 한 가지만 확실하게 쓰자.&lt;br /&gt;
----&lt;br /&gt;
인수군이 알카노이드를 만들때, 바의 위치를 셋팅해 줄때가 있었다. left, top, right, bottom 이라는 변수를 가지고 있었는데, right는 항상 left + width의 값이 되어야만 했다. 즉 left = ~, right = ~이래야 했었는데, setLeft()안에 left = ~ , right = left + width 이렇게 쓰는 것으로 해결을 봤었다.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
위의 예제의 경우는 자기 자신의 멤버를 호출하는 것인지라 바로 매핑되는 예는 아닌 듯. 다른 클래스에서 해당 클래스의 멤버를 사용하는 예제가 좋을듯 한데. --&amp;amp;#91;1002&amp;amp;#93;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[SBPPSummary]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>