struct与class的区别

原创 2015年07月09日 10:20:01

struct与class的区别可以分以下两个方面来讨论:

一、C语言中的struct与C++中class的区别:

struct只是作为一种数据类型定义,不能用于面向对象编程。对于如下C语言片段:

struct Point
{
	int x;
	int y;
	void print()
	{
		printf("Point.\n");//编译错误“函数不能作为Point结构的成员”
	}
};

二、C++中的struct与C++中class的区别:

对于成员访问权限及继承方式,class中默认的是private,而struct中默认的是public。除此之外,class还可以用于表示摸板类型,struct则不行。

class访问权限 默认private,struct默认public

struct SPoint
{
	int x;
	int y;
	void print()
	{
		cout<<"Point public."<<endl;
	}
	SPoint(int x, int y)
	{
		this->x = x;
		this->y = y;
	}
private:
	void print1()
	{
		cout << "Point Private." << endl;
	}
};

class CPoint
{
	int x;
	int y;
	void print()
	{
		cout << "Point public." << endl;
	}
	
public:
	CPoint(int x, int y)
	{
		this->x = x;
		this->y = y;
	}
	~CPoint(){}
	void print1()
	{
		cout << "Point Private." << endl;
	}
};
int main()
{
	SPoint Sp(2,3);
	CPoint Cp(2,3);
	Sp.print();
	Sp.print1();//函数不可访问
	Cp.print();//函数不可访问
	Cp.print1();
	system("pause");
	return 0;
}

class继承默认private,struct继承默认public

struct base
{
	void print()
	{
		cout << "SBase:print()" << endl;
	}
};

class Cderivate1 :base
{
	void CDprint()
	{
		cout << "Cderivate1:print()";
	}
};

struct Sderivate1 :base
{
	void SDprint()
	{
		cout << "Sderivate1:print()";
	}
};

class Cderivate2 :public base
{
	void CDprint()
	{
		cout << "Cderivate2:print()";
	}
};

struct Sderivate2 : private base
{
	void SDprint()
	{
		cout << "Sderivate2:print()";
	}
};

int main()
{
	Cderivate1 cd1;
	Cderivate2 cd2;
	Sderivate1 sd1;
	Sderivate2 sd2;

	cd1.print();//函数不可访问
	cd2.print();
	sd1.print();
	sd2.print();//函数不可访问
	system("pause");
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

class与struct的区别

一、默认成员的权限区别 struct默认的成员权限是public,而class的默认成员权限是private。 二、默认继承方式 同样的,struct默认的是pu...

C++中struct和class的区别

http://blog.csdn.net/xdrt81y/article/details/17143801 一、  C++中的struct对C中的struct进行了扩充,它已经不再只是...

C++ 中struct与class的区别

C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。 struct能包含成员函数吗? 能! struct能继承吗? 能!!...

C++中struct和class的区别

讨论一下结构(struct)与类(class)的区别,你认为结构(struct)有些什么作用,可以完全用类(class)取代么??  ---------------------------------...

Struct和Class的区别

转载来源:http://blog.csdn.net/yuliu0552/article/details/6717915 C++中的struct对C中的struct进行了扩充,它已经不再只是一个包...

Struct和Class的区别

C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。 struct能包含成员函数吗? 能! struct能继承吗? 能!! s...

Struct和Class的区别

转载来源:http://hi.baidu.com/peng890125/item/3cb228d4dad0482839f6f728         C++中的struct对C中的struct...

Baidu struct 与类 class 的区别? 【面】

这是我遇到过的一道百度面试题目 : 当时一愣没有答出来!所以现在回来查了一下!以下内容为 : 转载 讨论一下结构(struct)与类(class)的区别,你认为结构(struct)有些什么作...
  • aclay
  • aclay
  • 2012-09-25 23:04
  • 285

C/C++面试题:class和struct有什么区别?

C/C++面试题:class和struct有什么区别? 考点:class和struct的区别 出现频率:☆☆☆☆ 解析: 这里有两种情况下的区别。 (1)C的struct与C++的class...

c中的struct与c++中的class的区别

从语法上,在C++中(只讨论C++中)。class和struct做类型定义时只有两点区别:   (一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)