전체 글144 C++ 상속 - 업캐스팅, 다운캐스팅, protected 접근지정자 상속 기본 클래스의 속성과 기능을 파생 클래스에 물려주는 것 가장근접한 클래스를 가져오는것 기본클래스: 상속해주는 클래스, 부모 클래스 파생 클래스: 상속받는 클래스, 자식 클래스 1) 상속 정의시 class 클래스이름 : public(접근지정자(기본 private)) 물려받은 클래스이름 - 접근지정자는 public으로 가져올 시 public으로 지정된 것들만 가져올 수 있다 그것 보다 좁은 private는 가져올 수 없다. 하지만 private로 접근지정자를 설정하면 기본 클래스를 모두 private로 가져올 수 있다. 2) 상속의 목적 1. 간결한 클래스 작성 2. 클래스간의 계층적 분류 및 관리의 용이함 3. 클래스 재사용과 확장을 통한 소프트웨어 생산성 향상 업캐스팅 파생클래스 포인터가 기본클래스.. 2021. 4. 21. C++ static Static 객체를 많이 만들어도 1개 객체 이름으로 많이 만드는건 의미가 없고 공간만 낭비할 것 같을떄 사용 클래스이름::static변수 or 함수 ex 1) #include using namespace std; class Circle { private: static int numOfCircles; int radius; public: Circle(int r = 1); //디폴트 생성자 ~Circle() { numOfCircles--; } //소멸될때 마다 -1씩 double getArea() { return 3.14 * radius * radius;} static int getNumOfCircles() { return numOfCircles; } }; Circle::Circle(int r) { radi.. 2021. 4. 21. C++ 얕은복사 깊은복사 얕은 복사(Shallow Copy) 얕은 복사는 객체가 가진 멤버들의 값을 새로운 객체로 복사하는데 만약 객체가 참조타입의 멤버를 가지고 있다면 참조값만 복사가 됩니다. 깊은 복사 (Deep Copy) 깊은 복사는 전체 복사라고도 합니다. 얕은 복사와는 달리 객체가 가진 모든 멤버(값과 참조형식 모두)를 복사하는 것을 말합니다. 객체가 참조 타입의 멤버를 포함할 경우 참조값의 복사가 아닌 참조된 객체 자체가 복사되는 것을 깊은 복사라 합니다 ※ 얕은복사 깊은복사 총정리 얕은 복사의 경우 동적 할당을 받은 변수의 주소값을 공유한다. 깊은 복사의 경우에는 새로이 동적 할당은 받고, 원본의 데이터까지 복사를 한다. 복사생성자 객체의 복사가 이루어질 때 호출되는 생성자이다. 클래스 내에서 일반 생성자는 파라미터.. 2021. 4. 21. C++ 참조자 참조자(공간) - 이미 존재하는 변수에 대한 다름 이름을 선언 - 포인터 변수로 하면 접근성이 떨어져서 참조자로 사용 - 선언시에 쓰는 것은 주소가 아닌 참조자 - 참조변수는 이름만 생기며 - 참조변수에 새로운 공간을 할당하지 않는다. - 초기화로 지정된 기존변수를 공유한다. - 공간을 같이 쓴다. 주의사항 1. 참조자의 타입은 대상이 되는 변수의 타입과 일치해야 합니다. 2. 참조자는 선언과 동시에 초기화되어야 합니다. 3. 참조자는 한 번 초기화되면, 참조하는 대상을 변경할 수 없습니다. ex 1) #include using namespace std; char& find(char s[], int index) { return s[index]; } int main() { char name[] = "Mik.. 2021. 4. 20. C++ 문자열 string 실습 문자열을 입력받아 문자열 안에 a라는 문자가 몇개 있는지 출력하는 프로그램을 작성하시오 출력형태 문자열 입력>> are you happy? i am so happy. 문자 a는 3개 있습니다. 힌트 : 'a'를 찾기 위해서 string 클래스에서 제공하는 at() 사용하기 #include using namespace std; #include int main() { string text; int count = 0; cout 2021. 4. 20. C++ 동적할당 실습 문제 Triangle 클래스를 작성하자 Triangle 클래스는 private으로 선언된 height, length, width의 변수를 갖으며 height, length, width값을 1로 초기화하는 기본 생성자를 갖는다. setLenght(int a, int b, int c)는 세변의 길이를 설정해주는 함수이다. isPossible()함수는 삼각형 구현이 가능한지 알려주는 함수이다. 삼각형 구현이 가능한 경우는 두변의 길이의 합이 한변의 길이보다 항상 커야한다. Triangle 클래스는 Triangle.h에 저장 Triangel 구현부는 Triangle.cpp에 저장 main은 main.cpp로 저장하자 다음은 실행결과이다. 몇개의 삼각형을 만드시겠습니까? >>3 1번째 삼각형의 세변의 길이를 입.. 2021. 4. 20. 이전 1 ··· 15 16 17 18 19 20 21 ··· 24 다음