c++中struct和class的区别

 

从语法上来讲,class和struct做类型定义时只有两点区别

  • 默认继承权限:如果不明确指定,来自class的继承安置private继承处理,来自struct的继承安置public继承处理。
  • 成员的默认访问权限:class的成员默认private权限,struct默认public权限
#include <iostream>
using namespace std;
struct MyStruct {
	int my;    //默认public
};

class MyClass {
	int my;      //默认private
public:
	void print()
	{
		cout << "MyClass public";
	}
};

struct MyStructSon : MyStruct {   //默认继承权限是public
	
};
class MyClassSon :MyClass {   //默认继承权限是private.

};
void main()
{
	MyStruct mystruct1;
	MyClass myclass1;
	mystruct1.my = 1;  //默认访问权限是公有,其对象可以访问
	//myclass1.my = 0;  //默认访问权限是私有,其对象不可以直接访问
	myclass1.print();
	MyStructSon mystruSon;
	mystruSon.my = 11;      //默认public继承,可以访问public数据
	cout << mystruct1.my << endl;  //1,父亲是父亲的,虽然儿子可以继承老子,但是父亲的东西和儿子的东西是两个时间不同东西
	MyClassSon myclassSon;
   // myclassSon.print();  //因为默认是private继承,所以父类的所有权限都降级为private.
	system("pause");
}

 

发布了254 篇原创文章 · 获赞 70 · 访问量 18万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 黑客帝国 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览