C++中class和struct的区别
来源:互联网 发布:软件大道附近租房 编辑:程序博客网 时间:2024/06/07 06:13
在 C++ 中class 和 struct 只有两点主要区别:
1. 默认继承权限。默认情况下,class的继承是以private来继承而struct则是按照public进行继承。
2. 成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。
1. 默认继承权限。默认情况下,class的继承是以private来继承而struct则是按照public进行继承。
2. 成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。
而其它的特性,struct和class基本上,甚至严格来说是一样的。
//一个不常见的示例,将 struct 直接改为class也能编译通过。//编译环境为 GCC 4.4.1#include <iostream>#include <string>using namespace std; struct bar{ private:// 访问权限修饰符 int y; public: bar(){};//无参构造函数 bar(int a){ y = a;}//带参数的构造函数 ~bar();//虚构函数 void say(); virtual void func1() = 0;//纯虚函数};struct foo: protected bar// 继承{ private: int x; public: foo(){}; void say(string msg) {cout<<msg<<endl;} virtual int func2();//虚函数}; int main(){ return 0;}
可以看到:
1. 都可以有成员函数:struct可以包含和class中一样的构造函数,析构函数,重载的运算符,友元类,友元结构,友元函数,虚函数,纯虚函数,静态函数;
2. 尽管默认访问权限不同,但都可以拥有public/private/protected修饰符;
3. 都可以进行复杂的继承和多重继承,一个struct可以继承自一个或多个class,反之亦可。
注意这里与C语言并不相同,C 语言中的 struct 从本质上来说只是一个包装数据的语法机制。
在一般情况下,仍必须使用struct结构的主要原因是:
1. 开发维护遗留系统。
2. 需要与传统的API进行通讯。
3. 当然,有时使用struct可以让代码看起来更简洁
原文:http://www.dewen.org/q/5950
有错的地方还请大家指出,共同探讨,共同学习!
- C#struct和class的区别
- [C#]class和struct的区别
- 【C++】class和struct的区别
- c#中struct和class的区别
- .NET中class和struct的区别
- .NET中class和struct的区别
- .NET中class和struct的区别。
- c#中struct和class的区别
- C++中struct和class的区别
- .net中class和struct的区别
- c#中struct和class的区别
- C++中struct 和 class 的区别
- .NET中class和struct的区别
- C#中struct和class的区别
- C++中struct和class的区别
- C++中 struct 和 class 的区别
- C++中class和struct的区别
- C++中struct 和 class的区别
- http://www.cnblogs.com/
- 新手如何使用Eclipse创建包并且调用import语句使用这个包
- tomcat的安装与使用
- C++的RTTI基本原理
- android关于The connection to adb is down, and a severe error has occured.这个问题的解决办法
- C++中class和struct的区别
- (贪心5.2.5)POJ 1862 Stripies(利用数据有序化来进行贪心选择)
- C语言 函数调用栈变化 (VC6.0)
- Linux 系统调用实现机制
- 【C#开发宝典】.匡松等(奋斗的小鸟)_PDF 电子书
- *简单卖票
- C#编程网络大讲堂.郑千忠等(奋斗的小鸟)_PDF 电子书
- NSDate的一些常用范例
- 利用.htacess 实现重定向