C++ 프로그래밍
C++은 AT&T 벨 연구소의 비야네 스트롭스트룹이 1983년 발표하여 발전한 프로그래밍 언어이다. C 언어의 문법을 대부분 사용할 수 있으며, 객체지향성이 더해진 C 언어의 확장형이라고 생각할 수도 있다.
원래 이름은 C with Classes였으나, 증가 연산자를 도입하면서 1984년에 C++로 이름이 변경되었다.
C++에서는 Class의 비중이 크게 차지한다.
오늘은 Class를 배우지 않는다.
C++에서의 컴파일 - 파일명.cpp
ex) cl main.cpp
리눅스에서의 C++ 컴파일 - g++
ex) g++ -o main main.c (또는 main.cpp)
C++에서는 #include <stdio.h> 대신 #include <iostream>을 사용한다.
C++에서는 .h가 붙지않는다.
using namespace std; 명령어는 계속 쓰니까 외우도록 한다.
① cout << "Hi\n"; → C++에서의 출력소스 ( C언어에서의 printf("Hi\n"); 와 같다.)
② cout << "Hi" << endl
※ ①, ②는 같은 문법이다.
C++ 소스 기본형
C++에서는 변수를 아무데서나 선언해도 에러가 나지 않는다.
C++에서 출력할때 C언어처럼 %d나 %s같은 변환문자 의미 자료형을 사용하지 않아도 출력이 가능하다.
위 코드,결과에서 보이듯 변수를 아무 위치에서나 선언하여도 에러없이 잘 돌아간다.
C++ 구구단 프로그래밍 실습
- 코드
- 결과
※ 결과 캡쳐가 작게나왔네요 죄송합니다!
범위연산자
범위 연산자 ::는 여러 범위에 사용된 식별자를 식별하고 구분하는 데 사용된다.
smart :: A → smart에 소속된 A
- 범위연산자 실습 코드
- 결과
레퍼런스 변수(reference variable)
정의 : 한 변수의 포인트 주소를 공유하는 다른 변수
원형 : 원형 자료형식 & 변수 = 원형변수;
ex) int iNum;
int & r = iNum;
한 변수의 포인트 주소를 공유 한다는 점이 레퍼런스 변수의 제일 중요한 점이다.
변수 선언시 초기화를 해주어야한다.
선언 이후 초기화 하면 컴파일 에러가 뜬다.
C++ 문법이므로 C에서는 사용할 수 없다.
- 레퍼런스 변수 예제
- 결과
C++ 동적할당
변수와 배열을 동적으로 할당하고 해제할 수 있다.
동적으로 할당한 변수는 반드시 해제해줘야 한다.
new : 변수 동적 할당
delete : 동적 할당 변수 해제
new[] : 배열 동적 할당
delete[] : 동적 할당 배열 해제
- 동적할당 연결리스트 실습
- 결과
Car 구조체 실습 소스
#include <iostream>
#include <stdio.h>
using namespace std;
typedef struct _Car
{
int iSpeed;
int iDir;
char cColor[256];
}Car;
void ShowCar(Car * cP)
{
cout << "Car Speed : " << cP -> iSpeed << endl;
cout << "Car Directions : " << cP -> iDir << endl;
cout << "Car Color : " << cP -> cColor << endl;
return;
}
void SetCarSpeed(Car * cP)
{
int iNum;
cout << "속도를 입력하시오 : ";
scanf("%d",&iNum);
if(110 < iNum)
{
iNum = 110;
}
if(-60 > iNum)
{
iNum = -60;
}
cP -> iSpeed = iNum;
return;
}
int main()
{
Car myCar = {0, 0, "Red"};
SetCarSpeed(&myCar);
ShowCar(&myCar);
return 0;
}
※ 밑에 car 실습 코드 첨부하였습니다.
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20150601 - 21번 우대희 <매개 변수 / 상수멤버 초기화> (3) | 2015.06.01 |
---|---|
고전 자료(?) ... (4) | 2015.05.28 |
20150528 - 20번 엄민웅 C#, C++(클래스 생성자 소멸자) (8) | 2015.05.28 |
20150527 - 19번 - 안향진 - C#,C++ (6) | 2015.05.28 |
20150522 - 14번 - 박제혁 - IP 프로토콜 (1) | 2015.05.24 |
20150522 packet analyzer 소스코드 (1) | 2015.05.22 |
20150221 업무일지 - 16번 박태인 - 서보모터,Timer/Counter & network protocol, MAC Address (4) | 2015.05.22 |
20150520_일일업무일지_14번_박서연 - 카운터/타이머, pcap, 도서관리프로그램 (5) | 2015.05.20 |