일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Lua
- 월세
- 청량리역한양수자인192
- file read
- 국토교통부
- meta table
- lua setup
- QTcpServer
- #부동산전자거래 #부동산전자계약 #부동산계약 #부동산전자계약방법 #부동산전자계약하는법 #부동산계약방법 #부동산중개수수료 #부동산중개수수료아끼기 #부동산복비아끼기
- lua interpreter
- file write
- C++ API
- 찾다죽는줄
- C API
- QT TCP
- 프리미어 영상변환
- 엑스퍼트2주년
- file open
- 등록임대주택
- lua for windows
- 티몬삼겹살데이
- 엑스퍼트생일축하해
- TCP/IP
- #신혼부부 #결혼준비 #신혼부부희망타운신혼부부특별공급
- FILE TRANSFER
- lua install
- object
- 프리미어 영상저장
- 수도권주택공급
- 중소규모택지
- Today
- Total
목록1. 프로그래밍/5) C++ (17)
Value Creator의 IT(프로그래밍 / 전자제품)
tcp_server.c #include #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char *argv[]) { int serv_sock; int clnt_sock; struct sockaddr_in serv_addr; //서버의 소켓 구조체 생성 struct sockaddr_in clnt_addr; //클라이언트의 소켓 구조체 생성 socklen_t clnt_addr_size; //클라이언트 주소의 소켓 길이 char message[]="Hello World!"; if(argc!=2){ printf("Usage : %s \n", argv[0]); exit..
가장 완전한 main문은 main (int argc, char* argv[], char* env[]) 의 형식을 가지며 뒤에서부터 생략이 가능하다. argc - argument count argv - argument value env - environmental (variable?) 먼저 대충 이런 뜻으로 생각하면 의미가 잘 맞아 떨어지는 듯 하다. 각각의 역할을 알아보면 argc 프로그램을 시작했을 때 전해지는 인자의 갯수. 함수 호출시에 인자를 넘기는 것 처럼 프로그램을 시작할 때 인자를 넘길 수 있다. 첫번째 인수는 실행파일의 경로로 고정되어 있어서 인자가 하나도 전달되지 않았을때의 값이 1이다. argv 프로그램이 시작되었을때 넘겨받은 인자. 데이터 타입에서 알 수 있듯이 모든 정보를 문자열로 처..
#동적 메모리 할당 앞서서 프로그래밍 예제를 풀때 간혹가다 new를 쓰는 것을 보았을 것이다. 그것은 배열의 동적할당을 할 때 사용하는 것이다. 이번에는 그 동적 할당이라는 것을 자세히 알아보자. 동적 메모리 할당(이하 동적할당)은 개발자가 프로그램 작성단계에서 필요한 메모리를 확보할때 그때마다 필요한 만큼만 쓰게 하기 위해 만들어진 개념이다. 기존의 방식은 객체 배열의 메모리를 정적으로, 그러니까 프로그램 내부에서 정해진 수치안에서 작성하였다. 하지만 때로는 객체의 메모리를 사용할때 그 이하가 필요하거나 그 이상이 필요할때가 있다. 그때 필요한 만큼 할당받고 필요 없을 때 반환하는 동적할당이라는 개념이 필요하다. 물론 기존 C언어에서도 동적할당 및 반환이 가능했다. malloc()/free()가 그 예..
RAM.h #ifndef RAM_H #define RAM_H #include using namespace std; class Ram { char mem[100 * 1024];// 100kb 메모리. 한 번지는 한바이트이므로 char 타입사용. int size; public : Ram(); ~Ram(); char read(int adress); void write(int adress, char value); }; #endif 헤더 파일은 위와 같이 주어진다. 기본생성자에서는 mem의 사이즈를 size로 변경해주고(동적할당) 소멸자에서는 소멸자가 작동하는지 유무 체크를 위한 문자를 넣으면 된다. ex) "메모리 제거됨" read에서는 말그대로 해당 주소를 읽어오는 것이며 write는 해당 주소의 mem에 값..
앞서 클래스와 객체에 대해 공부했으니 문제를 풀어보자. 클래스로 값의 범위를 설정해 원하는 랜덤 정수 10개를 생성시키는 Random 클래스를 만들어보자. 메인문은 아래와 같다. main.cpp #include"Random.h" int main() { Random test1, test2(10, 30); test1.show(); test2.show(); } Random.h #ifndef RANDOM_H #define RANDOM_H #include #include using namespace std; #define MAX 10 class Random { int left; int right; int random[MAX]; public : Random(); Random(int l, int r); void sh..
#구조체 선언 C++에서는 c언어의 호환성을 목표로 개발되었다. 그렇기 때문에 호환성을 위해 구조체(struct)를 지원한다. C++에서의 구조체는 표준 C 구조체에 기능을 확장하여 기존의 클래스와 동일한 구조와 기능을 가진다. 선언 방법은 struct 로 선언하면 되며, 클래스와 같이 멤버함수와 멤버변수를 가지며, 접근지정도 해야한다. struct example { //디폴트 접근 지정은 클래스와 달리 public. private: //private속성의 멤버 변수나 함수 선언 public: //public 속성의 멤버 변수나 함수 선언 protected: //protected 속성의 멤버 변수나 함수 선언 }; C++에서의 구조체 객체 생성은 클래스 객체 선언과 같이 구조체 타입뒤에 객체 이름을 지정..
#생성자란? 공을 만드는 기계로 예를 든다. 어떤 공을 만드는 기계가 있는데 이 기계는 페인트를 넣으면 그 페인트에 해당하는 색깔의 공이 생산된다. 페인트를 넣지 않는다면 기본적인 흰공이 생산된다. 이와 같은 개념으로 클래스(class)는 객체가 생성될 때 자동으로 실행되는 생성자(constructor)라는 특정 멤버 함수를 통해 객체를 초기화시켜 여러 기능을 수행한다. 앞서 했던 원(Circle) 클래스로 예를 든다. #ifndef CIRCLE_H #define CIRCLE_H #include using namespace std; class Circle { double pi = 3.14; public: Circle() { radius = 1; }//생성자 1 Circle(int r) { radius =..
예제 클래스 : 원(Circle) 클래스 main.cpp에 클래스 넣지 말고, 가능하면 헤더파일을 만들어서 따로 만든다. 깔끔해 보이고 나중에라도 혹시 가져다 쓸때 더 편리하다. 1. Circle.h #ifndef CIRCLE_H #define CIRCLE_H #include using namespace std; class Circle { double pi = 3.14; public: int radius; double getArea(); }; 2.Circle.cpp #include "Circle.h" double Circle::getArea() { return pi*radius*radius; } 3. Main.cpp #include"Circle.h" int main() { Circle pizza; piz..