X hits on this document

835 views

0 shares

0 downloads

0 comments

74 / 396

Chapter ‎18   Unsafe code

class A { int x;

static void F(B b) { b.x = 1;// Ok } }

class B: A { static void F(B b) { b.x = 1;// Error, x not accessible } }

the B class inherits the private member x from the A class. Because the member is private, it is only accessible within the class-body of A. Thus, the access to b.x succeeds in the A.F method, but fails in the B.F method.

3.5.3 Protected access for instance members

When a protected instance member is accessed outside the program text of the class in which it is declared, and when a protected internal instance member is accessed outside the program text of the program in which it is declared, the access is required to take place through an instance of the derived class type in which the access occurs. Let B be a base class that declares a protected instance member M, and let D be a class that derives from B. Within the class-body of D, access to M can take one of the following forms:

An unqualified type-name or primary-expression of the form M.

A primary-expression of the form E.M, provided the type of E is D or a class derived from D.

A primary-expression of the form base.M.

In addition to these forms of access, a derived class can access a protected instance constructor of a base class in a constructor-initializer (§‎10.10.1).

In the example

public class A { protected int x;

static void F(A a, B b) { a.x = 1;// Ok b.x = 1;// Ok } }

public class B: A { static void F(A a, B b) { a.x = 1;// Error, must access through instance of B b.x = 1;// Ok } }

within A, it is possible to access x through instances of both A and B, since in either case the access takes place through an instance of A or a class derived from A. However, within B, it is not possible to access x through an instance of A, since A does not derive from B.

3.5.4 Accessibility constraints

Copyright Microsoft Corporation 1999-2003. All Rights Reserved.61

Document info
Document views835
Page views835
Page last viewedSun Dec 04 16:39:09 UTC 2016
Pages396
Paragraphs9401
Words133190

Comments