Do using declarations respect private, protected, public access levels?

S

Siemel Naran

Do using declarations respect private, protected, public access levels?

class A {
public:
void f();
private:
void f(int);
};

class B : public A {
public:
using A::f;
void f(std::string);
};

Is the inherited f() in class B public, and the inherited f(int) in class B
private?

int main() {
B b;
b.f(3); // should this compile?
}

Thanks.
 
P

Peter Koch Larsen

Siemel Naran said:
Do using declarations respect private, protected, public access levels?

class A {
public:
void f();
private:
void f(int);
};

class B : public A {
public:
using A::f;
void f(std::string);
};

Is the inherited f() in class B public, and the inherited f(int) in class
B
private?
Yes. That is f(int) is not "inherited".
int main() {
B b;
b.f(3); // should this compile?
} No.

Thanks.
/Peter
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,432
Messages
2,571,680
Members
48,796
Latest member
Greg L.

Latest Threads

Top