1. string
C++에는 string이 없다
그러므로 string을 쓰려면 다음과 같이 해야 한다
1
2
3
|
#include <string>
using namespace std;
|
#include<string>
using namespace std;
2. h, cpp 분리하기
큰 프로그램을 만들 때, h와 cpp를 분리하여 만들면 훨씬...좋댄다...
(아직은 잘 모르겠음...어려워..)
예를 들어, Member의 클래스를 만들 때는
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#ifndef MEMBER_H
#define MEMBER_H
#pragma once
#include "TimeTable.h"
class Member {
private:
int memberNum;
public:
Member();
void setTimeTable();
};
#endif
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include <iostream>
#include <string>
#include"Member.h"
#include"TimeTable.h"
using namespace std;
Member::Member(){
static int number_of_members = 0;
number_of_members++;
std::cout << "[" << number_of_members << "]Member is made" << std::endl;
}
void Member::setTimeTable() {
std::cout << "Let's make TimeTable" << std::endl;
}
|
위가 Member.h, 아래가 Member.cpp
h에는 간단히 선언만 해주고, cpp에는 상세화하여 코드를 작성하여 완성한다
3. static 변수
위 cpp코드를 보면
static int number_of_members가 있다
하지만, h파일에는 없는데
만약 h파일에 static변수를 선언하면 오류가 난다 (자세한 이유는 다음에)
h파일에 없어도, cpp파일에 작성하면 static이 적힌 코드의 줄은 한번만 실행이 되기에
전역변수로 사용할 수 있다
4. case 안에서 지역변수 사용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
case 1:
{
std::cout << "Create Member ......." << std::endl;
Member m;
memExist = 1;
std::cout << "" << std::endl;
int mkTimeTable = 0;
std::cout << "Make TimeTable ? ( Yes=1 | No=0 )>> ";
std::cin >> mkTimeTable;
if (mkTimeTable == 1) {
std::cout << "Make TimeTable ......" << std::endl;
m.setTimeTable();
}
else std::cout << "OK......" << std::endl;
break;
}//case안에서 지역변수를 생성하려면 중괄호를 사용해야 한다
|
중괄호로 묶어주지 않으면, 그 밑의 case인 case 2, ...에서 m변수를 생성하지 않았다고 오류가 난다
case 1인 경우에만 m을 생성하고 싶다면 다음과 같이 중괄호로 묶어주어야 한다
5. main밑에 함수 사용하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include<iostream>
#include<string>
#include"Member.h"
#include"TimeTable.h"
void memberMenu();
int main() {
~~~
return 0;
}
void memberMenu(){
~~~
}
|
main 아래에 함수를 정의할 경우 main보다 위에서 함수를 선언해주어야 한다
-------------------------------------------------
생각보다....오래걸린..것 같다...
'OOP' 카테고리의 다른 글
c++ [1] (0) | 2019.10.16 |
---|---|
c++ [ 2 : Hello, World! ] (0) | 2019.10.16 |