E D R , A S I H C RSS

Execute Around Method

Excute Around Method

같이 μΌμ–΄λ‚˜μ•Όλ§Œ ν•˜λŠ” 행동은 μ–΄λ–»κ²Œ ν‘œν˜„μ„ ν•  수 μžˆμ„κΉŒ? μ˜ˆλΌ λ“€λ©΄ νŒŒμΌμ„ μ—΄μ—ˆλ‹€λ©΄ λ‹«μ•„μ•Όν•œλ‹€. DCλΌ μ–»μ–΄μ™”μœΌλ©΄ ν•΄μ œν•΄μ€˜μ•Ό ν•œλ‹€. λ“±λ“±...
뭐 μ΄λŸ°μ‹μœΌλ‘œ ν•΄μ£Όλ©΄ 될 λ“ν•˜λ‹€.
~cpp 
class Foo
{
public:
	void openFilenClose()
	{
		ifstream fin("data.txt");
		/* ... μž‘μ—… */
		fin.close();
	}
};
λ‚΄κ°€ 보기엔 μ € 방법이 μ’‹μ•„λ³΄μ΄λŠ”λ°... ν΄λΌμ΄μ–ΈνŠΈλ‘œ ν•˜μ—¬κΈˆ 이 κ°μ²΄λΌ λ°°μš°κΈ°κ°€ 더 μ–΄λ ΅κ²Œ λ§Œλ“ λ‹€κ³  ν•œλ‹€. 그럴까? 잘 λͺ¨λ₯΄κ² λ‹€. μ€ λ” 써보면 μ•Œ λ“ν•˜λ‹€.

슀λͺ°ν† ν¬μ—μ„œλŠ” λ‹€μŒκ³Ό 같은 λ°©λ²•μœΌλ‘œ ν•΄κ²°ν•˜κ³  μžˆλ‹€. 슀λͺ°ν† ν¬μ—λŠ” Blockμ΄λΌλŠ” 객체가 μžˆλ‹€. 이 블둝을 νŒŒλΌλ©”ν„°λ‘œ λ„˜κ²¨μ£ΌλŠ” 것이닀. 즉 1. 파일 μ—°λ‹€. 2. μž‘μ—… 블둝을 νŒŒλΌλ©”ν„°λ‘œ λ„˜κ²¨μ€λ‹€. 3. 파일 λ‹«λŠ”λ‹€. μ΄λŸ°μ‹μœΌλ‘œ λ˜λŠ” 것이닀. C++μ—μ„œλŠ” ν•¨μˆ˜ ν¬μΈν„°λΌ λ„˜κ²¨μ£ΌλŠ” λ°©λ²•μœΌλ‘œ ν•΄κ²°ν•  수 μžˆμ„ λ“ν•˜λ‹€. 이런 것을 Higher Order Programming이라고 ν–ˆλ˜ 것 κ°™λ‹€.(SICP) C++μ—μ„œ 멀버 ν•¨μˆ˜λŠ” μ›μΉ™μ μœΌλ‘œ ν•¨μˆ˜ 포인터가 μ•ˆλ˜λŠ” κ²ƒμœΌλ‘œ μ•Œκ³  μžˆλ‹€. κ·Έλž˜λ„ κ·Έλƒ₯ κ·ΈλŸ°κ°€ 보닀 ν•˜μž. 정말 μ΄μƒν•˜λ‹€.--;
C++ μ—μ„œλ„ λ©€λ²„ν•¨μˆ˜μ— λŒ€ν•΄ ν•¨μˆ˜ν¬μΈν„° λ„˜κΈ°κΈ°κ°€ κ°€λŠ₯함. (문법은 생각 μ•ˆλ‚¨) --1002

~cpp 
void do( (void*) writeProcess() )
{
	fin.open("data.txt");	// λ§žλ‚˜?--;
	writeProcess();		
	fin.close();
}
void writeData()
{
	fin << "ν•˜μ΄";
	fin << "nice to meet you."
}

int main()
{
	do(writeData);
}

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:14
Processing time 0.0140 sec