C++中struct 和 class的区别

首先,C++中类的定义,从狭义上理解,就是我们使用的class类型。从广义上,类就是定义了一个新的类型和新的作用域,它具有成员函数和成员数据。

而对广义类定义的实现分为两种,一种是使用struct实现,一种是使用class实现。所以,有关类的继承,多态,动态绑定等知识点,C++中的struct 和class完全相同。只是在一些细节上略有区别。

两者的区别:

1.默认的访问标号不同:如果类中某成员的定义之前没有出现任何访问标号,则class定义的类中,成员默认为private成员。struct定义的类中,默认为public成员。
2.默认继承权限不同:如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理。
3.struct和class对象可以互相继承 。继承权限根据派生类的权限语法来定义。

class Base {
	public:
		void basemem();
	private:
		int i;
};

struct Derived : public Base(){
	public:
		int use_base() { return i; }
};
posted @ 2014-04-04 23:30  而远之  阅读(427)  评论(0编辑  收藏  举报