변수정의는 늦출 수 있는 데까지 늦추는 근성을 발휘하자 변수 정의를 늦출수 있게 된것은 C++의 어디에서건 변수를 선언 할수 있게 만들어 줌으로써 생겨난 방법일것이다. 가장 큰 이유는 변수의 생성 대입 초기화 라는 작업이 일어날 필요가 없게 될 경우가 생기기 때문이다. 예를 들어서, 아주 큰 객체를 생성하여 대입하고 하고, 특정 함수를 작업하고, 다시 선언된 큰 객체를 사용하고 날려 버리는 작업이 있다고 했을때, 특정 함수에서 오류가 나서 이 객체를 쓰지도 못하게 되었다고 한다면 이해가 쉽게 갈것이다 예제 1 1 2 3 4 5 6 7 8 9 10 11 12 void main() { string encrypted; if(password.lengh() 결론 변수 정의는 늦출 수 있을 때까지 늦추자.
예외를 던지지 않는 SWAP에 대한 지원도 생각해 보자 타이틀 입력부분C++에서 SWAP 이란 두 객체의 값을 ‘맞바꾸기’한다는 것을 말함. 기존의 SWAP의 동작을 보면 1 2 3 4 5 6 7 8 9 10 11 12 13 namespace { void swap(int a,int b) { int temp; Temp = a; a = b; b = temp; } } cs 어김없이 동작을 하게 되어있습니다. 하지만 예외의 swap의 동작을 요구하는 swap도 있습니다. 예제1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 class AA { public: private: int a,b,c; std::vectorv; }; c..
타입변환이 모든 매개변수에 대해 적용되어야 한다면 비멤버 함수를 선언하자 유리수가 선 객체일경우 operator를 사용하면 에러가 뜬다. 문제점 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 class Rational { public: Rational(int num = 0, int num1 = 1); //explicit붙이지 않는 이유는 int에서 Rational로의 암시적 변환을 허용하기위해… const Rational operator*(const Rational& rhs ) const; }; void main() { Rational Eighth(1, 8); Rational Ha..
맴버 함수보다는 비멤버 비프랜드 함수와 더 가까워지자 비 멤버함수로 구현한 것이 캡슐화 정도가 더 좋기 때문이다. 어떤 객체의 데이터에 접근할 수 있는 코드가 적을수록 캡슐화가 잘 되어 있는 것이라 할 수 있다. 외부에서 변경 불가능한 영역이 넓을수록 외부와 관계가 적으며, 그로인해 내부 구현이 바뀌더라도 외부에 많은 영향을 주지 않음. 멤버함수는 객체의 private영역까지 접근할 수 있다. 그러나 비멤버함수는 public영역 외에는 접근이 불가능하므로, 그 객체의 데이터에 직접적으로 접근할 여지가 줄어든다. 따라서 캡슐화가 멤버함수에 비하여 잘된 것이라 할 수 있음. 주의할 것은 이러한 비멤버함수의 이점은 비프렌드 함수일 때만 적용된다. 프렌드 함수는 접근권한이 멤버함수와 같으므로 캡슐화 정도도 똑같..
- Total
- Today
- Yesterday
- IV
- 디지털서명
- C#.NET
- process
- C#
- 백터
- bit
- C
- cpu 이용률
- 블럭암호화
- 네트워크 카드 이름
- 대칭키
- C# 고급 기술
- 디자인패턴
- string
- 패턴
- 해시
- 네트워크 정보
- C++
- RSA
- 최우림
- 블록암호화
- cpu 점유율
- 네트워크설정
- 인젝션
- cpu 정보
- 네트워크 연결
- 암호화
- StringFormat
- 디자인 패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |