● 기반클래스와 파생클래스의 생성자와 호출자
생성자()
:(const)내부변수초기화 // const(상수) 값을 초기화 시켜줄수 있다.
{
변수정의
}
상속 예제 소스 |
#include <iostream> using namespace std;class smart { public: const int A; const int B; smart() :A(100),B(200) // int A = 100 , int A(100) 같은 문법 { cout << A << endl; cout << B << endl; } }; class smart1 { public: smart1(int B) { A = B; } private: int A; }; class smart2 : public smart1 { public: smart2() // smart1의 디폴트 생성자 호출하기 때문에 에러가 난다. :smart1(100) // 그러므로 수동으로 인자가 하나인 생성자를 적어주어야 에러가 안난다. { } private: }; int main() { //smart a; // 디폴트 생성자를 호출해야하는데 생성자가 인자가 하나 있는 생성자를 호출하므로 에러가 난다. //smart1 obj1; smart1 obj1(100); return 0; } |
● 파생클래스에서 기반클래스 생성자 호출
파생클래스 생성자( 매개변수, ... ) : 기반클래스 생성자( 매개변수, ... ) // 기반클래스 생성자를 호출, 선별해서 처리가 가능하므로 효율적이다 { 나머지 파생클래스 생성자 정의 } |
Student:: Student(const string name, const string addr, const string tel, const double kor, const double mus, const double art) :Person(name, addr, tel) // 기법중 하나로 기반생성자에게 초기화를 처리하게끔 한다. 많이 쓰임{ //score[0] = kor; //score[1] = mus; //score[2] = art; SetScore(kor,mus,art); } |
소스
'C++프로그래밍' 카테고리의 다른 글
2013.11.22 _ 연산자 오버로딩 _ (0) | 2013.11.22 |
---|---|
2013.11.21 _ 상속에서 멤버 함수 재정의(함수오버로딩,함수오버라이딩) (0) | 2013.11.21 |
2013.11.14_ 상속(Inheritance) _ 예제 실습 (0) | 2013.11.14 |
[2013.11.01] C++ _ 자료형과 연산자 (0) | 2013.11.01 |
2013.10.18_문자열변수와 문자열상수의 구분 (0) | 2013.10.18 |