🙌 Hello?
C++ 정리 - 26 (분할 컴파일,기억 존속 시간, 사용범위, 링크,자동 변수,정적 변수, 정적 존속 시간, 외부 링크,사용 범위 결정 연산자)
메모리 모델과 이름 공간 분할 컴파일 원본 프로그램을 다음과 같이 세 부분으로 분할할 수 있다. 1. 구조체 선언과, 그 구조체를 사용하는 함수들의 원형이 들어있는 헤더 파일 2. 그 구조체에 관련된 함수들의 코드가 들어있는 소스코드 파일 3. 그 구조체에 관련된 함수들을 호출하는 코드가 들어있는 소스코드 파일 흔히 헤더 파일에는 다음과 같은 것들을 넣는다. 1. 함수 원형 2. #define이나 const를 사용하여 정의하는 기호 상수 3. 구조체 선언 4. 클래스 선언 5. 템플릿 선언 6. 인라인 함수 파일 이름이 괄호로 묶여있으면, 컴파일러는 표준 헤더 파일들이 들어있는 호스트 시스템의 파일 시스템 영역에서 그것을 찾는다. 그러나 큰 따옴표로 묶여있으면, 컴파일러는 먼저 현재 작업 디텍토리나 소스..
(C++기초플러스 6판 프로그래밍 연습 정답,솔루션) CHAPTER 13 클래스의 상속 p.989~ 1번~4번
1번 //classic.h #ifndef CLASSIC_H_ #define CLASSIC_H_ class Cd { private: char performers[50]; char label[20]; int selections; double playtime; public: Cd(char* s1="no name", char* s2="no label", int n=0, double x=0.0); //Cd(const Cd& d); virtual ~Cd() {} virtual void Report() const; Cd& operator=(const Cd& d); }; class Classic :public Cd { private: char title[50]; public: Classic(char* s3 = "no ..
(C++기초플러스 6판 프로그래밍 연습 정답,솔루션) CHAPTER 12 클래스와 동적 메모리 대입 p.892~ 1번~6번
1번 //cow.h #ifndef COW_H_ #define COW_H_ class Cow { private: char name[20]; char* hobby; double weight; public: Cow(); Cow(const char* nm, const char* ho, double wt); Cow(const Cow& c); ~Cow(); Cow& operator=(const Cow& c); void ShowCow() const; }; #endif //cow.cpp #include #include"cow.h" Cow::Cow() { strcpy(name, "no name"); hobby = new char[1]; hobby[0] = '\0'; weight = 0.0; } Cow::Cow(const..
(C++기초플러스 6판 프로그래밍 연습 정답,솔루션) CHAPTER 11 클래스의 활용 p.787~ 1번~7번
1번 // randwalk.cpp -- Vector 클래스를 사용한다 // vect.cpp 파일과 함께 컴파일한다 #include #include #include // rand(), srand()의 원형 #include // time()의 원형 #include "vect.h" int main() { using namespace std; using VECTOR::Vector; srand(time(0)); // 난수 발생기에 씨를 뿌린다 double direction; Vector step; Vector result(0.0, 0.0); unsigned long steps = 0; double target; double dstep; ofstream write_randwalk; write_randwalk.ope..
(C++기초플러스 6판 프로그래밍 연습 정답,솔루션) CHAPTER 10 객체와 클래스 p.705~ 1번~8번
1번 //account.h #ifndef account_H_ #define account_H_ class BankAccount { private: char name[40]; char acctnum[25]; double balance; public: BankAccount(const char* client, const char* num, double bal = 0.0); void show(void) const; void deposit(double cash); void withdraw(double cash); }; #endif //account.cpp #include #include #include"account.h" BankAccount::BankAccount(const char* client, const ..
(C++기초플러스 6판 프로그래밍 연습 정답,솔루션) CHAPTER 09 메모리 모델과 이름 공간 p.630~ 1번~4번
1번 //golf.cpp #include"golf.h" #include #include void setgolf(golf& g, const char* name, int hc) { strcpy(g.fullname, name); g.handicap = hc; } int setgolf(golf& g) { using std::cout; cout
(C++기초플러스 6판 프로그래밍 연습 정답,솔루션) CHAPTER 08 함수의 활용 p.555~ 1번~7번
1번 #include using namespace std; void print(char* a, int n = 0); int main() { char a[50]; int n,count=0; for(;;) { cout n).get(); if (n == 0) { print(a); count++; } else for (int i = 0; i < count; i++) print(a, n); } return 0; } void print(char* a, int n) { cout
(C++기초플러스 6판 프로그래밍 연습 정답,솔루션) CHAPTER 07 함수-C++의 프로그래밍 모듈 p.462~ 7번~10번
7번 #include const int Max = 5; double * fill_array(double * a, double * b); void show_array(double* a, double* b); void revalue(double r, double* a, double* b); int main() { using namespace std; double properties[Max]; double * b = fill_array(properties, properties + Max); show_array(properties, b); if (properties != b) { cout > factor)) { cin.clear(); while (cin.get() != '\n') continue; cout
(C++기초플러스 6판 프로그래밍 연습 정답,솔루션) CHAPTER 07 함수-C++의 프로그래밍 모듈 p.461~ 1번~6번
1번 #include double aver(double x, double y); int main() { using namespace std; double x, y,z; for(;;) { cout > x >> y; if (x == 0 || y == 0) break; z = aver(x, y); cout
(C++기초플러스 6판 프로그래밍 연습 정답,솔루션) CHAPTER 06 분기 구문과 논리 연산자 p.370~371 6번~9번
6번 #include struct donation_info { char name[20]; double donation; }; int main() { using namespace std; cout > n; donation_info * SPRI = new donation_info[n]; for (int i = 0; i name; cout name > (SPRI + i)->donation; } cout donation >= 10000) { cout name