사용 방법은 다음과 같습니다. 1. 네임스페이스 [using 네임스페이스 네임스페이스]; 2. 별칭 입력 [using aa=double] 3. 기본 클래스에서 상속된 멤버의 액세스 수준을 변경합니다. 4. 파생 클래스가 기본 클래스에 액세스하도록 합니다. 5. 파생 클래스가 모든 생성자를 상속하도록 합니다.
【관련 학습 권장 사항: C 언어 튜토리얼 동영상】
사용 방법:
참고: 헤더 파일은 거기에 없어야 합니다. 네임스페이스 사용 선언입니다
2. 별칭 입력(C++11)
using namespace 命名空间;//这样每次使用命名空间中的变量时就不用指定命名空间了
using aa = double;//等价于typedef double aa typedef double db, *p;//db是double的同义词,p是double*的同义词(注意)
class base { public: int fun(int x); int b; }; class son : private base { public: using base::fun; //fun(int x)由private变成public(注意:using不指定参数列表) protected: using base::b; //b由public变成protected };
1) 파생 클래스는 기존 방식 기본 클래스의 생성자이지만 파생 클래스가 기본 클래스의 모든(두 가지 예외 포함) 생성자를 상속하도록 하려면 using 문을 사용합니다.
2) 예외 1: 파생 클래스의 자체 생성자와 기본의 특정 생성자 class 동일한 형식 매개변수가 있으면 생성자는 상속되지 않습니다예외 2: 기본, 복사 및 이동 생성자는 상속되지 않습니다3) 3번과 달리 using 문은 상속된 생성자를 변경하지 않습니다. : using 문이 어디에 나타나든 기본 클래스의 public/protected/private 생성자는 여전히 파생 클래스에서 public/protected/private 생성자입니다. 4) using 문은 명시적 및 constexpr을 지정할 수 없습니다. class 클래스의 생성자가 명시적이거나 constexpr인 경우 상속된 생성자도 동일한 속성을 갖습니다5) 상속된 생성자는 사용자 정의 생성자가 아니므로 여전히 합성 생성자의 생성 규칙을 충족할 수 있습니다6) If If 기본 클래스의 생성자에 기본 매개변수가 있으면 기본 매개변수는 상속되지 않습니다. 7) 기본 클래스의 생성자에 두 개의 형식 매개변수가 있고 한 매개변수에는 기본 매개변수가 없고 다른 매개변수에는 기본 매개변수가 있는 경우 두 개의 생성자가 있습니다. 상속을 통해 획득됩니다. 하나의 생성자에는 두 개의 형식 매개변수가 있고 다른 생성자에는 단 하나의 형식 매개변수(기본 실제 매개변수가 없는 매개변수에 해당)만 있습니다. 즉, 기본 실제 매개변수는 상속되지 않습니다class base { public: void func() { cout << "func1()" << endl; } void func(int x) { cout << "func2()" << endl; } }; class son : public base { public: using base::func; //若没有此句,func()和func(int x)将会被隐藏 void func(int x, int y) { cout << "func()3" << endl; } };
위 내용은 사용 용도는 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!