C++ class和struct的区别?
C++ 中保留了C语言的struct关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。
struct能包含成员函数吗? 能! struct能继承吗? 能!! struct能实现多态吗? 能!!!
#include <iostream>
using namespace std;
struct A
{
public:
A() { cout << "A construct..." << endl;}
virtual ~A(){ cout << "A deconstruct..." << endl;}
};
struct B: public A
{
public:
B() { cout << "B construct..." << endl;}
~B(){ cout << "B deconstruct..." << endl;}
};
int main()
{
A *a = new B();
delete a;
return 0;
}
// A construct...
// B construct...
// B deconstruct...
// A deconstruct...C++中的 struct 和 class 基本是通用的,唯有几个细节不同:
使用 class 时,类中的成员默认都是 private 属性的;而使用 struct 时,结构体中的成员默认都是 public 属性的。 class 继承默认是 private 继承,而 struct 继承默认是 public 继承。 class 可以使用模板,而 struct 不能。
C++ 没有抛弃C语言中的struct关键字,其意义就在于给C语言程序开发人员有一个归属感,并且能让C++编译器兼容以前用C语言开发出来的项目。
在编写C++代码时,我强烈建议使用 class 来定义类,而使用 struct 来定义结构体,这样做语义更加明确。
相关推荐
sillion 2020-07-09
拉斯厄尔高福 2020-11-04
嵌入式资讯精选 2020-10-15
zhaochen00 2020-10-13
penkgao 2020-10-13
wanshiyingg 2020-09-29
Mars的自语 2020-09-27
shenwenjie 2020-09-24
一个逗逗 2020-09-22
flycony 2020-09-13
zhaochen00 2020-08-20
Biao 2020-08-20
qingsongzdq 2020-08-19
penkgao 2020-08-17
cetrolchen 2020-08-14