当前位置: 首页 > wzjs >正文

源码屋整站源码软件开发公司排行榜

源码屋整站源码,软件开发公司排行榜,网站建设规划模板,做系统下载网站建设1. 默认访问控制 这是struct和class最显著的区别: struct: 默认的成员访问权限是public。 默认的继承方式是public继承。 class: 默认的成员访问权限是private。 默认的继承方式是private继承。 示例:默认访问控制 struc…

1. 默认访问控制

这是structclass最显著的区别:

  • struct

    • 默认的成员访问权限是public

    • 默认的继承方式是public继承。

  • class

    • 默认的成员访问权限是private

    • 默认的继承方式是private继承。

示例:默认访问控制
struct MyStruct {int x;  // 默认是 public
};class MyClass {int x;  // 默认是 private
};int main() {MyStruct s;s.x = 10;  // 合法,x 是 publicMyClass c;// c.x = 10;  // 错误,x 是 privatereturn 0;
}

2. 设计意图

  • struct

    • 通常用于表示简单的数据结构,尤其是当数据成员需要直接访问时。

    • 常用于与C语言兼容的场景,或者不需要复杂封装的情况。

  • class

    • 通常用于表示更复杂的对象,强调封装和数据隐藏。

    • 适合实现面向对象的设计模式(如继承、多态等)。


3. 继承的默认访问控制

  • struct

    • 默认继承方式是public继承。

    • 例如:struct Derived : Base {},等价于struct Derived : public Base {}

  • class

    • 默认继承方式是private继承。

    • 例如:class Derived : Base {},等价于class Derived : private Base {}

示例:继承的默认访问控制
struct Base {int x;
};struct DerivedStruct : Base {  // 默认是 public 继承void print() { std::cout << x; }
};class DerivedClass : Base {  // 默认是 private 继承void print() {// std::cout << x;  // 错误,x 在 Base 中是 private(因为默认是 private 继承)}
};

4. 使用场景

  • struct

    • 适合用于简单的数据聚合,例如点(Point)、矩形(Rectangle)等。

    • 适合与C语言代码交互时使用。

  • class

    • 适合用于复杂的对象模型,例如学生(Student)、车辆(Vehicle)等。

    • 适合需要封装和数据隐藏的场景。

5. 代码示例对比

以下是一个structclass的对比示例:

使用struct
#include <iostream>
#include <string>struct Person {std::string name;  // 默认是 publicint age;           // 默认是 publicvoid printInfo() {std::cout << "Name: " << name << ", Age: " << age << std::endl;}
};int main() {Person p;p.name = "Alice";  // 可以直接访问p.age = 25;        // 可以直接访问p.printInfo();     // 输出: Name: Alice, Age: 25return 0;
}
 使用class
#include <iostream>
#include <string>class Person {std::string name;  // 默认是 privateint age;           // 默认是 privatepublic:void setName(const std::string& n) { name = n; }void setAge(int a) { age = a; }void printInfo() {std::cout << "Name: " << name << ", Age: " << age << std::endl;}
};int main() {Person p;p.setName("Alice");  // 必须通过公共方法访问p.setAge(25);        // 必须通过公共方法访问p.printInfo();       // 输出: Name: Alice, Age: 25return 0;
}

6. 总结对比表

特性structclass
默认访问控制成员默认是public成员默认是private
默认继承方式默认是public继承默认是private继承
设计意图简单数据聚合,与C兼容复杂对象模型,强调封装
常见用途点、矩形、配置参数等学生、车辆、银行账户等

7. 选择struct还是class

  • 如果需要直接访问数据成员,或者与C语言兼容,优先使用struct

  • 如果需要封装和数据隐藏,或者实现复杂的面向对象设计,优先使用class

在实际开发中,structclass的选择更多是基于设计意图和代码风格,而不是严格的规则。 

http://www.dtcms.com/wzjs/435514.html

相关文章:

  • 东台做淘宝网站推广专员是做什么的
  • 培训收费网站建设如何推广公司网站
  • 北京网站的建设汕头seo外包公司
  • 潍坊网站制作怎么做百度推广手机客户端
  • 新开最好的传奇网站十大网站管理系统
  • 网站为什么不收录重庆人力资源和社会保障网官网
  • 做网站有高手没有网站收录情况
  • 视频网站做漫画百度号码认证平台个人号码申诉
  • 外贸网址长春百度seo排名
  • 阿里巴巴网站服务器成本如何把品牌推广出去
  • 紫色个人网站模板免费培训seo
  • 做短视频网站有流量吗广告推广代运营公司
  • 网站建设后续需要维护网站权重是怎么提升的
  • 重庆网站的建设媒体公关公司
  • 书籍网站建设目标太原seo网站优化
  • 溧阳网站制作重庆网络推广公司
  • 广州做网站公司哪家好互联网营销师报名入口官网
  • 上海爆发丧尸病毒宁波谷歌seo
  • 手机网站建设wap百度统计怎么使用
  • 福州企业网站建设推广广告宣传费用一般多少
  • b2b网站分析网络营销主要特点有哪些
  • 自己建网站有什么用网络培训平台
  • 如何做一个好网站代发百度帖子包收录排名
  • 广州知名网站建设软文推广方案
  • 铜仁做网站的公司平台推广方案模板
  • 模版网站可以做seo吗百度指数下载
  • 2017做哪些网站致富自动app优化下载
  • 沈阳网站建设与维护西安百度推广开户多少钱
  • bootstrap中文网站模板关键词一般是指什么
  • 自贡建网站优惠活动推广文案