对于C++中类(class) 与结构(struct)的描述正确的为:
A,类中的成员默认是private 的,当是可以声明为public,private 和protected,结构中定义的成员
默认的都是public;
B,结构中不允许定义成员函数,当是类中可以定义成员函数;
C,结构实例使用malloc() 动态创建,类对象使用new 操作符动态分配内存;
D,结构和类对象都必须使用new 创建;
E,结构中不可以定义虚函数,当是类中可以定义虚函数.
F,结构不可以存在继承关系,当是类可以存在继承关系.
#include <iostream>
#include <string>
using namespace std;
//结构
struct B{
int a;
virtual void fun(){
cout<<"hello B"<<endl;
}
};
struct BB:public B{
void fun(){
cout<<"hello BB"<<endl;
}
};
//类
class C
{
int a;
public:
void fun(){
cout<<"hello"<<endl;
}
};
void main(){
B b,*pb;//C,D选项:结构或和类对象可以在栈上创建
b.fun();//B选项:结构中允许定义成员函数
b.a=12;//A选项:结构中的成员默认是public的
BB bb;//F选项:结构中可以存在继承关系
pb=&bb;
pb->fun();//E选项:结构中可以定义虚函数
C c;
//A选项:类中的成员默认是private的,当是可以声明为public,private 和protected,
//结构中定义的成员默认的都是public;
//c.a=13;//error C2248: “C::a”: 无法访问 private 成员(在“C”类中声明)
system("pause");
}
综上所述:
答案:A