1. 사람인에서 IT개발, 데이터 분야에서 공고 많은 순으로 검색
2. c++ 언어의 중요문법 표로 정리
문법 | 설명 | 예제 |
변수 선언 | 변수를 선언하고 초기화하는 방법입니다. C++에서는 타입이 중요합니다. | int x = 10; |
조건문(If-else) | 조건에 따라 다른 코드를 실행하는 구조입니다. | if (x > 0) { cout << "Positive"; } else { cout << "Negative"; } |
반복문 (For, While) | 코드를 여러 번 실행하기 위한 구조입니다. For는 정해진 횟수만큼, While은 조건이 참인 동안 반복합니다. | for (int i = 0; i < 10; i++) {} while (x > 0) {} |
함수(Function) | 재사용 가능한 코드 블록을 정의하는 방법입니다. 입력 파라미터를 받아 결과를 반환할 수 있습니다. | int add(int a, int b) { return a + b; } |
클래스(Class) & 객체(Object) | 객체 지향 프로그래밍의 핵심 요소로, 관련된 데이터와 함수를 하나로 묶어서 사용합니다. | class Car { public: int speed; void accelerate() { speed++; }}; Car myCar; |
배열(Array) | 동일한 타입의 여러 값을 저장할 수 있는 데이터 구조입니다. | int numbers[5] = {1, 2, 3, 4, 5}; |
포인터(Pointer) | 메모리 주소에 직접 접근할 수 있게 해주는 도구입니다. | int x = 10; int* p = &x; *p = 20;// x is now 20 |
예외 처리(Exception Handling) | 프로그램에서 예외적인 상황이 발생했을 때 그 상황을 처리하는 방법입니다. | try{ throw std::runtime_error("Error");}catch(const std::exception& e){ std::cerr << e.what();} |
3. 아마존에서 c++ 언어를 배우는 책들 중에 4권을 골라서 목차 정리
1. "C++ Primer" by Stanley B. Lippman, Josée Lajoie, and Barbara E. Moo
- Part I: The Basics
- Chapter 1: Getting Started
- Chapter 2: Variables and Basic Types
- Chapter 3: Strings, Vectors, and Arrays
- ...
- Part II: The C++ Library
- Chapter 7: Input and Output Streams
- Chapter 8: The IO Library
- ...
- Part III: Tools for Class Authors
- Chapter 13: Copy Control
- Chapter 14: Overloaded Operations and Conversions
2. "Effective Modern C++" by Scott Meyers
- Item 1: Deducing Types
- Item 2: Auto
- Item 3: Moving to Modern C++
- ... (이 책은 특정 주제에 초점을 맞춘 일련의 항목(Item)으로 구성되어 있습니다.)
3. "C++ Concurrency in Action" by Anthony Williams
- Part I: Introduction to Concurrency
- Chapter 1 : Hello, World of concurrency in C++
- Chapter 2 : Managing threads
- ...
4. "The C++ Programming Language" by Bjarne Stroustrup
- Part I : Basics -Chapter1 : A Tour of C++ -Chapter2 : Overview of the language ..
4. c++ 개요를 5개의 절로 만들어주고 2000자 이내로 정리
1. C++ 언어의 소개 : C++은 범용 프로그래밍 언어로, Bjame Stroustrup이 개발한 확장된 C 언어입니다. C++은 객체
지향 프로그래밍과 제네릭 프로그래밍을 지원하며, 고성능 및 시스템 수준의 프로그래밍에 적합합니다. C++은 다양한
플랫폼에서 실행되며, 널리 사용되는 라이브러리와 도구가 있습니다.
2. 객체 지향 프로그래밍 (OOP) : C++은 클래스와 객체를 사용하여 데이터와 함수를 캡슐화하는 객체 지향 프로그래밍을
지원합니다. 상속, 다형성, 캡슐화 등의 개념을 활용하여 코드 재사용성과 유지 보수성을 향상시킬 수 있습니다.
3.제네릭 프로그래밍 : 제네릭 프로그래밍은 타입에 독립적인 알고리즘과 컴포넌트를 작성할 수 있는 기법입니다.
C++에서 템플릿(Template)을 사용하여 제네릭 코드를 작성할 수 있으며, 컴파일 타임에 타입 검사 및 코드 생성이
이루어집니다.
4. 메모리 관리 : C++은 메모리 관리를 개발자가 직접 처리해야 합니다. 포인터와 참조를 사용하여 메모리 주소에 직접
접근할 수 있으며, new와 delete 연산자를 통해 동적으로 메모리 할당과 해제가 가능합니다.
5. 다양한 용도와 확장성 : C++은 시스템 및 응용 소프트웨어 개방에 널리 사용됩니다. 게임 엔진, 임베디드 시스템,
고성능 컴파일러 등 다양한 분야에서 활용됩니다. 또한 표준 라이브러리와 외부 라이브러리들을 통해 기능 확장이
가능하며, 다른 언어들과의 인터페이스도 가능합니다.
5. c언어, c++, c#, javascript, python 연산자들 차이점
연산자 | C/C++ | C# | JavaScript | Python |
산술 연산자 (+, -, *, /, %) | 지원함 | 지원함 | 지원함 | 지원함 |
증감 연산자 (++, --) | 지원함 | 지원함 | 지원함 (단, '--'와 '++'는 변수에 할당하지 않음) | 지원하지 않음 |
비교 연산자 (==, !=, <, >, <=, >=) | 지원함 | 지원함 | ==와 !=는 형변환 후 비교. ===와 !==는 형변환 없이 비교. | ==와 !=은 값 자체를 비교하고 is 와 is not은 객체 식별을 위해 사용됨 |
논리 연산자 (&&, | , ! ) | &&는 AND연산. ||는 OR연산. !는 NOT연산 | ||
비트 단위 연산자 (& , | , ~ , ^ , >> , << ) | 지 원 함 | 지 원 함 | ||
할당 연산자 (= , += , -= 등등) | 지 원 함 | 지 원 함 | ||
삼항 조건 연사자 ( ? : ) | 지 원 함 | 지 원 함 |
6. c++ 기본소스
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World";
return 0;
} //.cpp
7. c언어 기본소스
#include <stdio.h>
int main()
{
printf("Hello World");
return 0;
} //.c
8. java 기본소스
public class Main
{
public static void main(String[] args) {
System.out.println("Hello World");
}
} //.java
9. c# 기본소스
using System;
class HelloWorld {
static void Main() {
Console.WriteLine("Hello World");
}
} //.cs
10. kotlin 기본소스
fun main() {
println("Hello World")
} //.kt
11. rust 기본소스
fn main() {
println!("Hello World");
} //.rs
12. go 기본소스
package main
import "fmt"
func main() {
fmt.Println("Hello World")
} //.go
13. 프로그래밍 언어 인기도
14. 프로그래밍 기본 용어
15. c++, c#, java 차이점을 표로 정리
특징 | C++ | C# | Java |
메모리 관리 | 개발자가 직접 관리해야 함. delete 등의 연산자를 사용하여 메모리 해제 필요 | 자동으로 Garbage Collection을 수행하여 더 이상 참조되지 않는 객체를 메모리에서 제거함 | 자동으로 Garbage Collection을 수행하여 더 이상 참조되지 않는 객체를 메모리에서 제거함 |
다중 상속 | 지원함 | 지원하지 않음. 대신 인터페이스를 활용할 수 있음 | |
컴파일 방식 | 기계 코드로 직접 컴파일됩니다. | ||
플랫폼 독립성 | 부분적입니다. 소스 코드가 여러 플랫폼에서 재컴파일될 수 있지만, 종속성과 호환성은 주의 깊게 관리해야 합니다. | ||
예외 처리 방식 | 구조화된 예외 처리와 비구조화된 예외 처리 모두 지원합니다.(try-catch와 setjmp/longjmp) | ||
포인터 사용 | 포인터 사용 가능하며, 메모리에 직접 접근할 수 있습니다. |
16. c++, java의 공통점
- 객체 지향 프로그래밍 (OOP): 둘 다 객체 지향 프로그래밍을 지원하며, 클래스와 객체를 통해 데이터와 함수를 하나로 묶는 방식을 제공합니다.
- 기본 데이터 타입: 두 언어 모두 기본적인 데이터 타입을 제공합니다. 예를 들면 int, float, double, char 등입니다.
- 제어 구조: if-else 문장, for/while 반복문 등의 제어 구조가 유사합니다.
- 예외 처리: try-catch-finally 문법을 통한 예외 처리 방식이 비슷합니다.
- 클래스와 인터페이스: 클래스를 사용하여 코드를 구조화하고 추상화할 수 있으며, 인터페이스라는 개념도 존재합니다.
- 라이브러리 및 API 지원: 표준 라이브러리 및 API가 있으며 이들은 파일 I/O, 문자열 처리, 날짜 및 시간 처리 등에 활용됩니다.
17. 내림차순 > 오름차순
#include <stdio.h> // 전처리기, 5장
#define SIZE 3 // 전처리기, 5장
typedef struct { // 구조체, 12장
char name[10];
double w;
}WEIGHT;
void swap(WEIGHT*, WEIGHT*); // 함수 선언, 8장
int main(void)
{
WEIGHT man[SIZE] = { {"한개발",57.5}, // 배열, 10장
{"엄청군",125.6},
{"갈비양",35.7} };
int i, j; // 변수, 3장, 기억 클래스,9장
for (i = 0; i < 2; i++) { // 제어문, 7장
for (j = i + 1; j < 3; j++) { // 연산자, 6장
if (man[i].w > man[j].w) {
swap(&man[i], &man[j]);
} // call by reference, 11장
}
}
printf(" 이름 \t체중\n");// 표준 라이브러리 함수, 4장
for (i = 0; i < 3; i++) {
printf(" %s %5.1f\n", man[i].name, man[i].w);
}
return 0;
} //main()함수 끝
void swap(WEIGHT* mani, WEIGHT* manj)// 포인터, 11장
{ //함수 정의
WEIGHT temp;
temp = *mani;
*mani = *manj;
*manj = temp;
}
18. 토큰과 구두점
19. 구두점
20. 예약어
21. 리터럴
※문자형 리터럴은 작은 따옴표, 문자열 리터럴은 큰 따옴표
22. 식별자/상수/자료형/변수/주석문 예제
#include <stdio.h> //printf()함수 원형이 선언되어 있음, 전처리기
int main(void) //콘솔 기반 C프로그램의 시작점
{ //main()함수의 시작
int num1, num2; //변수 선언문, 보통 실행문 보다 먼저 씀
/* 변수명: 영문자(A-Z, a-z), 숫자(0-9), 밑줄(_)로 구성
변수(variable):프로그램이 실행되는 동안 자료를
기억시키기 위한 기억장소의 이름 */
num1 = 100; //대문자와 소문자는 다른 변수로 인식
num2 = -300; //변수에 상수 대입
printf("두 수의 합은 %d입니다.\n", num1 + num2);
//표준 라이브러리 함수
return 0;
} //main()함수의 끝
23. c++ 기본 소스1
#include <iostream>
int main()
{
std::cout << "Hello World!\n";
}
24. c++ 기본 소스2
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World" << endl;
return 0;
}
C++ 강의 자료 참고했습니다.
'C++' 카테고리의 다른 글
[C++ 프로그래밍] 11주차 함수중첩, 디폴트 인자 (0) | 2023.11.16 |
---|---|
[C++ 프로그래밍] 10주차 const동적 메모리 할당(new, delete) (6) | 2023.11.09 |
[C++ 프로그래밍] 9주차 객체와 멤버 생성자 소멸자 this (0) | 2023.11.02 |
[C++ 프로그래밍] 7주차 멤버의 접근 속성클래스와 객체 만들기 (2) | 2023.10.19 |
[C++ 프로그래밍] 6주차 객체지향언어특징 클래스와객체 접근속성 (0) | 2023.10.12 |
[C++ 프로그래밍] 5주차 함수 기억클래스 구조체 (2) | 2023.10.05 |
[C++ 프로그래밍] 3주차 C문법 정리2 (0) | 2023.09.21 |
[C++ 프로그래밍] 2주차 C문법 정리1 (0) | 2023.09.14 |