首页 > 试题广场 >

知识点:CC++ 710(多选) 下面的类: class

[不定项选择题]
下面的类:
class Base {
public:
    void f(){cout<<"Base::f()"<<endl;}
protected:
    Base(){cout<<"Base::Base"<<endl;}
private:
    void g() {cout<<"Base::g()"<<endl;}
}

class First: public Base{
public:
    First(){cout<<"First::First"<<endl;}
}
下面哪些是正确的语句()

  • main() {
        Base a;
    }
  • main() {
        First a;
    }
  • main() {
        First a;
        a.f();
    }
  • main() {
        First a;
        a.g();
    }
<br> 为换行符;
A.构造函数权限为protected,在类外除了继承的方式,无法实例化对象。
B.First类是Base类的子类,可以进行实例化对象。
C.子类调用父类的公有成员函数,是符合语法的,正确
D.子类调用父类的私有成员函数,不符合语法,错误
发表于 2020-08-14 09:44:45 回复(1)
A.类在定义对象的时候调用构造函数,而Base的构造是protected,在类外除了继承的方式,无法实例化对象。
发表于 2022-04-11 23:18:36 回复(0)
newbee
发表于 2022-01-16 14:56:50 回复(0)
#include <iostream>
using namespace std;
class Base
{
public:
    void f(){cout<<"Base::f()"<<endl;}
//Base类的构造函数被声明为受保护的,因此它只能在类内部和派生类内部访问
//而不能在类的外部(如 main 函数中)直接访问 protected:
    Base(){cout<<"Base::Base"<<endl;}
private:
    void g() {cout<<"Base::g()"<<endl;}
}; //class花括号"{}"后要加上";"号

class First: public Base
{
public:
    First(){cout<<"First::First"<<endl;}
};
int main(void)
{
    //Base a;
    return 0;
}

发表于 2023-10-19 20:46:16 回复(0)
 void g() {cout<<”Base::g()<<endl;},这里应该少了个引号,
//要不是学过点html还真忘了<br>是什么
还有构造函数为protect,不知道是不是和单例设计模式相关
编辑于 2021-05-12 17:41:43 回复(0)