C++中的结构体和类的异同

171 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


在C++面向对象程序设计中,经常用常指针和常引用作函数参数。这样既能保证数据安全,是数据不能被随意修改,在调用函数时又不必建立实参的拷贝

1.  #include
2.  using namespace std;
3.
4.  struct Result
5.  {
6.    int add;
7.    int sub;
8.  };
9.
10.  Result operation(int a,int b)
11.  {
12.    Result ret;
13.    ret.add=a+b;
14.    ret.sub=a-b;
15.    return ret;
16.  }
17.
18.  int main()
19.  {
20.  Result res;
21.  res=operationn(5,3);
22.  cout<<"5+3="<endl;
23.  cout<<"5-3="<endl;

c++中结构体可以定义一个函数

C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。

C++中的结构体和类的异同:

一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数

二、不同之处:结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。类中的非static成员函数有this指针,类的关键字class能作为template模板的关键字 即template class A{}; 而struct不可以。

实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。