answersLogoWhite

0

Access specifiers apply to class and struct data types only. If a member is declared before an access specifier is declared, the default access is implied. Once an access specifier is declared, that specifier remains in force until another specifier is declared. Specifiers can be declared in any order and may be repeated as often as required.

The following demonstrates usage and purpose of each specifier.

class X {

friend void f(); // Friends can be declared anywhere.

private: // The default access specifier for class types (implied if omitted).

int a; // Only accessible to members of X and to friends of X.

protected:

int b; // Same as private, also accessible to derivatives of X.

public:

int c; // Accessible to any code where X is visible.

};

struct Y { friend void f(); // Friends can be declared anywhere.

public: // The default access specifier for struct types (implied if omitted).

int a; // Accessible to any code where Y is visible.

protected:

int b; // Same as private, also accessible to derivatives of Y.

private:

int c; // Only accessible to members of Y and friends of Y.

};

struct Z : X

{};

void f()

{

X x;

x.a = 42; // OK! X::a is private and f is a friend of X.

x.b = 42; // OK! X::b is protected and f is a friend of X.

x.c = 42; // OK! X::c is public and X is visible to f.

Y y;

y.a = 42; // OK! Y::a is public and Y is visible to f.

y.b = 42; // OK! Y::b is protected and f is a friend of Y.

y.c = 42; // OK! Y::c is private and f is a friend of Y.

Z z;

z.a = 42; // OK! Z::Y::a is public and Z is visible to f.

z.b = 42; // OK! Z::Y::b is protected and f is a friend of Y.

z.c = 42; // OK! Z::Y::c is private and f is a friend of Y.

}

int main()

{

X x;

x.a = 42; // error! X::a is private and main is not a friend of X.

x.b = 42; // error! X::b is protected and main does not derive from X.

x.c = 42; // OK! X::c is public and is X is visible to main.

Y y;

y.a = 42; // OK! Y::a is public and is Y is visible to main.

y.b = 42; // error! Y::b is protected and main does not derive from Y.

y.c = 42; // error! Y::c is private and main is not a friend of Y.

Z z;

z.a = 42; // OK! Z::Y::a is public and Z is visible to main.

z.b = 42; // error! Z::Y::b is protected and main is not derived from Y.

z.c = 42; // error! Z::Y::c is private and main is not a friend of Y.

}

User Avatar

Wiki User

10y ago

What else can I help you with?

Related Questions

What are the access control specifiers used in c plus plus?

The access control specifiers in C++ are...public - to denote that the member is accessible from any in scope codeprivate - to denote that the member is accessible only from within the containing classprotected - the same as private, except that derived classes are includedPrivate is the default for a class type object, while public is the default for a structure type object.


Are the private access specifiers in Java and C plus plus the same?

No.In Java, the private access modifier restricts member access to the class in which the member is declared. But in C++, private members are also accessible to friends of the class in which they are declared. The rough equivalent in Java would be package private access.Not that Java doesn't have access specifiers, it has access modifiers. When no modifier is specified, default access is implied, which is package private for classes and public for interfaces.


What is xhost plus in Linux?

xhost is server access control program for X. xhost + means is Access is granted to everyone


How to restart c plus plus program?

Exit the program and relaunch it.


Can you program games with c plus plus?

Yes, you can program games with C++.


Is there an answer book for the A plus program?

The A Plus Program is an initiative, not a test. So no, there is no answer book.


Does United Airlines offer special travel rewards?

Yes, their program is called Mileage Plus. Aside from earning miles, being an elite member of their program can get you better seats, discounts, bonus points, and premier access.


In ms access alt plus F4 is used to?

Alt+F4 is an almost universal shortcut in many platforms to exit or quit the application.


Why does sometimes when you run a program it will execute the previous program instead the current open program in C plus plus?

Because you aren't careful enough.


What is the default access specifier in C plus plus?

private


What is the only function all C plus plus programs must contain?

Every C plus plus program that is a main program must have the function 'main'.


A program c plus plus on automorphic numbers or not?

how to write a program that counts automorphic number from 1 to 999