728x90
반응형

클래스 4

[C#] 구조체와 클래스

C#에서 클래스와 구조체는 C++ 에서처럼 큰 차이는 없다. C++에서 구조체는 기본적으로 public 클래스는 기본적으로 private이라는 것을 제외하면 그냥 동일하다고 생각하고 쓰는 편인데, C#은 그마저도 없어 보인다. // 구조체 public struct Person { public string Name; public int Age; public Person(string name, int age) { Name = name; Age = age; } } // 클래스 public class PersonClass { public string Name { get; set; } public int Age { get; set; } public PersonClass(string name, int age) { ..

Program Language/C# 2023.02.16

[C++] 클래스 static 멤버

공개적으로 액세스 할 수 있는 전역 변수를 사용하지 않고도 편리함을 얻을 수 있다. 클래스의 일부이지만 해당 클래스의 객체의 일부가 아닌 변수를 static 멤버라고 한다. 일반 non-static 멤버와 같이 객체 하나의 복사본이 아니라 정확히 하나의 static 멤버 복사본이 있다. 마찬가지로 클래스의 멤버에 액세스해야 하지만 특정 객체에 대해 호출할 필요가 없는 함수를 static 멤버 함수라고 한다. 다음은 전역에 대한 의존으로 인한 문제없이 Date에 대한 기본 생성자 값의 의미 체계를 유지하는 설계다. class Date { int d, m, y; static Date default_date; public: Date(int dd =0, int mm =0, int yy =0); // ... st..

[C++] 클래스 가변성(mutability)

명명된 객체를 상수나 변수로 정의할 수 있다. 즉, 이름은 변경할 수 없거나 변경할 수 있는 보유하는 객체를 참조할 수 있다. 변경할 수 없는 객체를 체계적으로 사용하면 코드를 더 이해하기 쉽게 만들고 더 많은 오류를 조기에 발견하고 때로는 성능을 개선할 수 있다. 특히 불변성은 다중 스레드 프로그램에서 가장 유용한 속성이다. 기본 제공 유형의 단순 상수 정의를 넘어서 유용하려면 다음을 수행할 수 있어야 한다. 사용자 정의 유형의 const 객체에서 작동하는 함수를 정의한다. const T& 인수를 사용하는 함수를 의미하는 독립 함수의 경우. 클래스의 경우 const 객체에서 작동하는 멤버 함수를 정의할 수 있어야 함을 의미한다. const 멤버 함수 Date 값을 조사하는 방법을 제공하기 위해서 일, ..

[C++] 구조체와 클래스

구조체는 기본적으로 멤버가 공개되는 클래스다. 따라서 구조체는 멤버 함수를 가질 수 있다. 특히 구조체는 생성자를 가질 수 있다. struct Points { vector elem;// must contain at least one Point Points(Point p0) { elem.push_back(p0);} Points(Point p0, Point p1) { elem.push_back(p0); elem.push_back(p1); } // ... }; Points x0; // error : no default constructor Points x1{ {100,200} }; // one Point Points x1{ {100,200}, {300,400} }; // two Points 단순히 멤버를 순서..

728x90
반응형