목록Programing/C, C++ (32)
공부중
이미 알고는 있었지만 다시 한번 되새김질을 위하여…. #include class A { public: virtual void foo() { std::cout
몇 일전 모 회사의 필기시험 보러 갔다가 멘붕 당해와서 공부를 하려고 한다. 아오….. 존나 나의 뇌는 쓰레기인가보다. 먼저 당황했던건 머릿속에 있는 비트연산이라는 폴더가 있지만 파일이 없는 관계로 다시 정리하고 제목에 있는 것을 간단히 만들어 보려고 한다.(이야 존나 소 잃고 외양간 강철로 짓기) 일단 존나 음…… 간단하게 정리하면 컴퓨터는 모든 데이터의 표현 및 연산을 2진수로 처리한다. (11 01 01 10 10 00 11 00 10 이런 거로 한다고 한다… ) 혹시 몰라서 2진수라는걸 말하면 데이터를 표현하는데 2개의 숫자를 쓰겠다는 것이다. (그래서 0 과 1을 쓴다. – 왜 다른 숫자도 많은데 하필 0과 1을 쓰냐고 물으면 나도 모른다. 10진법에 길들여진 우리가 보기 편하고 생각하기 편하라..
페이스북 생활코딩이라는 그룹에서 글을 보다가 다음과 같은 질문 글을 본적이 있었다. (링크) 배열 선언 시 크기에 상수가 아닌 변수 size가 들어가 있으므로 컴파일 에러를 출력할 줄 알았는데 의외의 답변이 달렸다. https://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html 뭔가 내가 아는 지식이 틀린 지식이라는 것에 뭔가 뒤통수를 맞은 기분이었다. 정말로 gcc컴파일러에서는 돌아가는지 확인해 보았다. 헐… 된다…. 마지막으로 최신버전인 VisualStudio2015에서는 어떤지 봤다. 그냥 보이는 빨간 밑줄.. 역시… 이걸 보고 나서.. 컴파일러마다 적용되는 몇몇 다른 문법이 있다는 것을 다시 한번 느끼게 되는 문제였네요…..
C언어는 저수준 언어의 효율성과 하드웨어 접근 능력에 고수준 언어의 일반성과 이식성이 결합된 실용적인 언어이다. 일반적으로 컴퓨터 언어에는 데이터(Data)와 알고리즘(Algorithm) 이라는 두 가지 개념을 다루는데.. 데이터(Data)는 프로그램이 사용하고 처리하는 정보를 말하고 알고리즘(Algorithm)은 데이터를 처리하는 방법을 말한다. C언어는 절차적(Procedural)언어이다. 이 절차적 언어라는 말은 프로그래밍에서 데이터보다 알고리즘에 더 치중한다 절차적 언어들은 프로그램의 덩치가 커지면 작성하는데 어려움이 있다. 프로그램 작성시에 분기문을 사용하게 되는데 이 분기문은 조건검사의 결과에 따라서 서로 다른 곳으로 분기하여 다른 작업을 수행한다. 이러한 분기문이 어지럽게 엉켜있으면 프로그램..
int의 크기가 64bit OS에 맞춰서 변할 줄 알았는데 int의 크기는 똑같다는 결과가 나왔었다 하지만 주소의 크기는 변했을꺼라 믿고 다시 Visual Studio 2012를 켯다. 소스코드는 다음과 같다. #include int main() { std::cout
디폴트 값이란 무엇일까?? 디폴트 값은 기본적으로 설정되어있는 값을 의미한다. 그렇다면 매개변수의 디폴트 값은 함수 호출에서 실제 전달인자를 생략했을 경우에 실제 전달인자 대신 사용되는 값이다. 예를 들어서 void Example(int nNumber) 위와 같은 함수에서 nNumber가 만약에 10으로 디폴트 값을 지정했다면 Example(); 이라고 호출 했을 경우 이 함수 호출은 Example(10);와 같은 함수 호출이 된다. 다음 함수를 보자. void SUM1(int nNumber = 10) { return nNumber+1; } 여기서 SUM1 함수의 매개변수 선언은 int nNumber = 10 이다. 이 선언은 함수 호출 시 인자를 전달하지 않을 경우 10이 전달된 것으로 정의하겠다 라는..
일단 내가 전역한지 얼마 안되서 어느정도는 기억하고 어느정도는 잊어버린터라 그냥 정리하고 싶은거 정리 해놔야겠다.. 이번에는 함수 오버로딩을 정리해봐야겟다 함수 오버로딩(Function Overloading)이라고도 부르고 함수의 다형(Polymorphism)이라고도 부른다 간단히 줄이면 이 함수 오버로딩이라는 것은 서로 다른 여러 개의 함수가 하나의 이름을 공유하는 것! C언어에서는 동일한 이름의 함수가 정의되는 것이 문법상으로는 불가능 했다. 하지만 C++에서는 함수 호출할 때 전달되는 인자를 통해서 호출하고자 하는 함수의 구분이 가능하기 때문에 매개변수의 선언형태가 다르면 동일한 이름의 함수 정의를 허용할 수 있다. 함수 오버로딩은 함수의 전달인자 리스트를 보고 구분한다. (전달인자 리스트를 함수 ..