사용 용도는 무엇입니까

coldplay.xixi
풀어 주다: 2020-10-26 15:34:23
원래의
8825명이 탐색했습니다.

사용 방법은 다음과 같습니다. 1. 네임스페이스 [using 네임스페이스 네임스페이스]; 2. 별칭 입력 [using aa=double] 3. 기본 클래스에서 상속된 멤버의 액세스 수준을 변경합니다. 4. 파생 클래스가 기본 클래스에 액세스하도록 합니다. 5. 파생 클래스가 모든 생성자를 상속하도록 합니다.

사용 용도는 무엇입니까

【관련 학습 권장 사항: C 언어 튜토리얼 동영상

사용 방법:

참고: 헤더 파일은 거기에 없어야 합니다. 네임스페이스 사용 선언입니다

2. 별칭 입력(C++11)

using namespace 命名空间;//这样每次使用命名空间中的变量时就不用指定命名空间了
로그인 후 복사
3. 기본 클래스에서 상속된 멤버의 액세스 수준을 변경합니다.

using aa = double;//等价于typedef double aa
typedef double db, *p;//db是double的同义词,p是double*的同义词(注意)
로그인 후 복사
4. 기본 클래스의 모든 오버로드된 함수는 숨겨진

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
};
로그인 후 복사
5 대신 표시됩니다. 포인트 4를 업그레이드하면 파생 클래스가 직접 기본 클래스의 모든 생성자를 상속할 수 있습니다

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿