目录
结构体与类的异同点
结构体与类的相同点
结构体可以继承,封装。
结构体与类的不同点
结构体中的成员函数必须返回数值;
结构体中的成员函数必须有参数,而且这个参数可以重外部传入;
代码示例
#include <iostream>
#include <string>
using namespace std;
struct Cperson
{
float mark;
string name;
Cperson(float Smark, string Sname)
{
mark = Smark;
name = Sname;
}
};
struct Cstudent :public Cperson
{
int Order;
Cstudent(int Sorder, float Smark, string Sname) :Cperson(Smark, Sname) {
Order = Sorder;
}
int ShowInf(int Sorder) // 参数Sorder是从外界传入的参数
{
cout << Sorder << endl;
cout << name << endl;
return 0;
}
};
int main()
{
Cstudent stud(1, 99.99, "超级无敌霸霸强");
stud.ShowInf(1);
}
结构体与类的优缺点
结构体实质上偏向于数值的自定义数据类型,当我们需要大量的存储数据,用结构体自定义数据类型再合适不过了,而且用结构体进行自定义数据类型的定义时,无论是在对象的创建还是值传递方面都略胜类一筹(前提是:结构体内部的基本数据类型全是或大都是数值类型);
相比之下类是个混血儿,它在数值和字符串之间保持中立,因此当复制或赋值的时候,速度要比结构体的数值传递要慢一些,效率要低一些。
总结:
情况 | 更快速的自定义数据类型 |
自定义数据类型中全为数据类型 | 结构体 |
自定义数据类型中大多数为数据类型 | 结构体 |
自定义数据类型中包含大量字符串类型 | 类 |