首页 > 代码库 > c++ ,protected 和 private修饰的构造函数
c++ ,protected 和 private修饰的构造函数
c++
protected 和 private修饰的构造函数:
1.在类的外部创建对象时,不能调用protected或private修饰的构造函数。
2.当子类中的构造函数调用父类的private构造函数时会错,当子类中的构造函数调用父类中的 public或protected构造函数时是对的。
#include <iostream>using namespace std;////////////////////////////////////////////////class A {public: A();protected: A(int x);private: A(int x, int y);};A::A() { cout<<"A::A() public"<<endl;}A::A(int x) { cout<<"A(int x) protected"<<endl;}A::A(int x, int y) { cout<<"A(int x,int y) private"<<endl;}////////////////////////////////////////////////class B:public A {public: B(); B(int x); //B(int x , int y); void show();};B::B(): A() {//public A()}B::B(int x): A(x) {//子类中的构造函数可调用父类的protected构造函数}//当子类中的构造函数调用父类的private构造函数时会错// error C2248: “A::A”: 无法访问 private 成员(在“A”类中声明)// B::B(int x, int y): A(x,y){ // // }////////////////////////////////////////////////void f1() { A a1; // A::A() public // A a2(1); //error:在类的外部创建对象时,不能调用protected或private修饰的构造函数。 // A a3(1,2); //error:在类的外部创建对象时,不能调用protected或private修饰的构造函数。 B b1(33); // A(int x) protected}int main(){ f1(); while(1); return 0 ;}
c++ ,protected 和 private修饰的构造函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。