赞
踩
C语言中:struct是用户自定义数据类型(UDT);C++中struct是抽象数据类型(ADT),支持成员函数的定义,(C++中的struct能继承,能实现多态)。
C++中,struct的成员默认访问说明符为public(为了与C兼容),class中的默认访问限定符为private,struct增加了访问权限,且可以和类一样有成员函数。
struct作为类的一种特例是用来自定义数据结构的。一个结构标记声明后,在C中必须在结构标记前加上struct,才能做结构类型名(除:typedef struct class{};);C++中结构体标记(结构体名)可以直接作为结构体类型名使用,此外结构体struct在C++中被当作类的一种特例。
从语法上来讲,class和struct做类型定义时只有两点区别
- #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");
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。