일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 티스토리
- 포인터
- Javascript
- Win32
- c#
- 지식나눔강좌
- Tips강좌
- Desktop
- 리뷰
- Visual Studio
- 함수
- 알고리즘
- Programming
- Tips프로그래밍강좌
- doit코틀린프로그래밍
- 프로그래밍
- CS
- c++
- c
- 김성엽
- Kotlin
- tipssoft
- Windows
- VS ERROR
- Direct2D
- 배열
- 이지스퍼블리싱
- 백준
- 문법
- 연산자
- Yesterday
- Today
- Total
목록클래스 (5)
F.R.I.D.A.Y.
VS ERROR E1087 해당 오류는 여러 이유로 발생할 것으로 생각된다. 따라서, 각 파트에 맞추어 작성하겠다. 함수 한정자 const 사용 코드를 작성할 때, 클래스 메서드에서 멤버 필드에 쓰기를 제한하도록 하는 구문이 있다. class test{ private: int a; public: void accessA() const{ a = 5; // error } } 이런 식의 구조인데, 코드를 보게 되면, accessA 함수 뒤에 const로 한정자가 작성되어 있다. 멤버 함수 뒤에 붙는 const가 객체에 접근해 쓰기를 제한하도록 하는 구성이다. 원인 E1087 에러가 나는 방식 중 하나는 const 메서드에서 에서 일반 메서드를 호출할 때 이다. int Test::a() const{ b(1);//..
일반 함수와 클래스 메서드 함수 명령 단위라고 보면 될 것 같다. 선언 C++과 전혀 다를 것이 없다. 반환형, 함수명, 매개변수 리스트 순으로 작성한다. static void Test(){ } static을 붙인 이유라 함은, static을 붙이지 않으면 객체를 만들기 전까지 제대로 된 사용을 할 수 없다. 클래스 기반인 C#에선 C++과 달리 일반 함수로 사용하기 위해선 static 키워드를 붙여 이 함수가 메서드로 작성되지 않았음을 알려야 한다.[# 그렇다고 저렇게 작성한다고 해서 무조건 메서드가 아니란 소리가 아니다. 일반 함수처럼 사용하겠다는 뜻이지 메서드 중에서도 static 키워드를 붙인 메서드가 분명히 존재하고 또 만들 수 있다. 실질적으로 위에 보인 예시도 클래스 안에 들어가면 메서드의 ..
구조체와 클래스 데이터 전달 방식 구조체와 클래스를 배우기 위해선 필수적으로 사전에 알아야하는 것이 있다. 함수로 인수를 넘길 때 값으로 넘기는지 레퍼런스로 넘기는지이다. 값의 전달은 말 그대로 값을 복사해 전달하는 개념이다. A를 복사해 B를 만들었다. B에 영향을 주었을 때 A는 영향을 받지 않는다. 정도가 되겠다. static void valTest(int a) { System.Console.WriteLine(a); a = 5; System.Console.WriteLine(a); } static void refTest(ref int b) { System.Console.WriteLine(b); b = 5; System.Console.WriteLine(b); } static void Main(strin..
A 클래스 메서드를 가리키는 A 클래스의 멤버 함수 포인터의 선언과 사용 함수 포인터 함수 포인터는 말 그대로 함수를 가리키는 포인터입니다. 함수 포인터에 대한 자세한 설명은 아래 링크를 참고하세요. 포인터(pointer) part3. 함수 포인터 포인터는 신기하게도 함수까지 가리킬 수 있습니다. 어차피 이름이 있으니 이름으로 사용하면 될 텐데 뭐가 좋으냐는 생각을 할 수 있겠지만 이번에 그 생각이 바뀌실 겁니다. # 포인터에 대한 pang2h.tistory.com 클래스의 메서드도 함수 포인터로 이용을 할 수 있습니다. 그러나 일반적인 함수 포인터 선언으로는 제대로 사용할 수 없습니다. 해당 문제는 클래스 메서드의 특성을 알아야 이해가 가능하기 때문에 해당 부분을 먼저 설명합니다. 클래스 클래스는 객체..
C언어의 구조체(struct) 문법이 강화되면서 C++에 클래스 문법이 만들어졌습니다. 이 클래스 문법은 클래스 생성자가 존재합니다. 생성자를 간단히 설명하면 클래스를 인스턴스 해 객체를 만드는 과정에서 만들어진 객체가 오작동 없이 잘 기능할 수 있도록 내부 데이터(멤버 변수)를 초기화해주는 함수라고 생각하면 될것 같습니다. 1. class의 기본 구조 #include class test { private: int a; // 멤버 변수들 int b; int c; public: test() { // 생성자 } ~test() { // 소멸자 } }; 클래스의 기본 구조는 위와 같습니다. 생성자는 클래스 이름과 같고, 괄호 안에는 매개변수가 없거나 하나 이상 들어갈 수 있습니다. C++의 함수 오버로딩 기능이..