C++中的结构体

时间:2023-03-09 03:06:02
C++中的结构体

http://zhidao.baidu.com/link?url=8OYQSKV9mvSBc6Hkf9NsLQmipSge9VCZDJQGAZZs5PCBQ54UTmK98VRmAklEEAFYu7dHi9yhLhWeLsP4EwFW5_

c++中结构体可以定义一个函数
  C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。
  C++中的结构体和类的异同:
  一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数。
  二、不同之处:结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。类中的非static成员函数有this指针,类的关键字class能作为template模板的关键字 即template<class T> class A{}; 而struct不可以。
  实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。

http://bbs.****.net/topics/70110713

好像最早的类就是从结构中创立出来的.只不过后来为了记忆方便,又造出了一个class关键字.从这个角度来说,用struct声明,声明中有函数其实就是类.只不过struct中缺省public型,而class中缺省private型.比如:
struct a
{
 int b;
 void fun();
private:
 int c;
 void fun2();
};
与class a
{
 int c;
 void fun2();
public:
 int b;
 void fun();
};
可以认为是等价的.

声明:摘自百度知道和****论坛