c++中关于类(class)和结构体(struct)的区别个人总结

本文探讨了C++中结构体和类的区别,包括面向对象特性、默认访问权限和多态性。C++的结构体在面向对象方面与类相似,支持函数方法,但默认继承方式为public,而类默认为private。结构体同样支持多态性,其成员默认为public,允许直接访问。结论是C++中的结构体可视为一种不安全的类,主要区别在于内存分配和默认访问权限。
摘要由CSDN通过智能技术生成

多年前学的C++,当时不努力。发现应聘起来人家就考这些。偏偏脑子里面记得的struct全是C语言里面的知识点。为了对的起大学里面的学费,咱又得重新看一下书。结果却发现C++中的结构体和C里面的很不一样,C++改进了很多。

面向对象

首先C++是美国贝尔实验室的博士在C的语言上弥补了C的一些缺陷,曾加了面向对象的特征,于1980年开发出来的一种过程性与对象性结合的程序设计语言。从这句课本上的定义我们来看:C++是一门面向对象的语言,因此我们才会在C++中接触到了类。因为C++的面向对象所以C++结构体也做到了面向对象,也就是说结构体和类在C++中是很相似的。我们来看下面的代码

struct realmath{
	double real;
	double realcomplex()
	{
		return real;
	}
};

这段代码在VC编译器中是完全没有问题(不信的可以试试)。也就是说和C语言相比较言,C++中的结构体能够添加函数方法。(C语言可以用函数指针我们就不讨论这函数指针算不算函数了)。那么好吧既然它能实现面向对象,那么我们来看看面向对象的特性:一封装,二继承,三多态。首先封装和继承我们就一起来考虑吧。

结构体和类的比较

我们用结构体和类来实现简单的数学复数功能,当然考虑到了继承我们先写一个实数,然后复数继承自实数,代码如下:

struct realmath{
	double real;
	double realcomplex()
	{
		return real;
	}
};
struct complex:realmath{
	double imag;
	complex(double r,double i)
	{
	   real=r;
	   imag=i;
	}
	void init(double r,double i)
	{
		real=r;imag=i;
	}
         abscomplex()
	{
		double answer;
		answer = real*real-imag*imag;
		return s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值