全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C++如何定义和使用一个类(Class)?(构造函数示例)

C++中类由class关键字定义,含私有数据成员和公有成员函数,构造函数名与类名相同、无返回类型,用成员初始化列表高效初始化;可重载、委托或设默认参数。

在C++中定义一个类,就是用 class 关键字声明一组相关数据(成员变量)和操作这些数据的函数(成员函数),其中构造函数用于初始化对象。

定义类的基本结构

类通常包含私有(private)数据成员和公有(public)成员函数。例如定义一个表示学生的类:

class Student {
  private:
    std::string name;
    int age;
  public:
    Student();              // 默认构造函数
    Student(std::string n, int a); // 带参构造函数
    void display() const;
};

实现构造函数

构造函数名必须与类名完全相同,没有返回类型(连 void 也不能写)。它在创建对象时自动调用:

Student::Student() : name("Unknown"), age(0) {}

Student::Student(std::string n, int a) : name(n), age(a) {}

  • 使用成员初始化列表(冒号后部分)比在函数体内赋值更高效,尤其对自定义类型
  • 如果没定义任何构造函数,编译器会提供默认构造函数;但一旦定义了,就不会再自动生成默认版本
  • 可以重载多个构造函数,只要参数列表不同

创建和使用对象

定义类之后,就可以用它创建对象,并调用成员函数:

int main() {
  Student s1;                         // 调用默认构造函数
  Student s2("Alice", 20);         // 调用带参构造函数
  s2.display();
  return 0;
}

  • 对象在栈上创建时,构造函数立即执行
  • 若通过 new 动态分配(如 Student* p = new Student("Bob", 22);),构造函数也在内存分配后立刻调用
  • 成员函数需声明为 const(如 display() const)才能被 const 对象调用

补充:默认参数与委托构造(C++11起)

可简化构造函数数量:

Student::Student(std::string n = "Unknown", int a = 0) : name(n), age(a) {}

或用委托构造避免重复代码:

Student::Student() : Student("Unknown", 0) {}
Student::Student(std::string n, int a) : name(n), age(a) {}

  • 委托构造中,冒号后只能调用本类的另一个构造函数,且不能同时使用成员初始化列表
  • 被委托的构造函数先执行,再继续当前构造函数的函数体(如果有)


#   # ai  # c++  # String  # 成员变量  # 成员函数  # 构造函数  # const  # int  # void  # class  # public  # private  # 委托  # 对象  # display  # 多个  # 就不  # 也在  # 本类  # 自定义  # 它在  # 会再  # 用它  # 自动生成  # 或用 


相关文章: 建站之星代理如何优化在线客服效率?  视频网站制作教程,怎么样制作优酷网的小视频?  平台云上自主建站:模板化设计与智能工具打造高效网站  深圳网站制作培训,深圳哪些招聘网站比较好?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  阿里云网站制作公司,阿里云快速搭建网站好用吗?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  学校建站服务器如何选型才能满足性能需求?  如何配置WinSCP新建站点的密钥验证步骤?  音乐网站服务器如何优化API响应速度?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  广德云建站网站建设方案与建站流程优化指南  建站上市公司网站建设方案与SEO优化服务定制指南  如何通过服务器快速搭建网站?完整步骤解析  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  如何在阿里云购买域名并搭建网站?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何设计高效校园网站?  制作电商网页,电商供应链怎么做?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  高防服务器租用如何选择配置与防御等级?  如何在局域网内绑定自建网站域名?  如何快速启动建站代理加盟业务?  贸易公司网站制作流程,出口贸易网站设计怎么做?  制作网站外包平台,自动化接单网站有哪些?  如何在万网开始建站?分步指南解析  公司网站制作价格怎么算,公司办个官网需要多少钱?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  建站之星官网登录失败?如何快速解决?  建站主机核心功能解析:服务器选择与网站搭建流程指南  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  建站主机选哪家性价比最高?  常州企业网站制作公司,全国继续教育网怎么登录?  建站之星如何开启自定义404页面避免用户流失?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何在西部数码注册域名并快速搭建网站?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  建站之星导航菜单设置与功能模块配置全攻略  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何在腾讯云服务器快速搭建个人网站?  网站图片在线制作软件,怎么在图片上做链接?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  如何快速生成凡客建站的专业级图册?  如何通过VPS建站实现广告与增值服务盈利?  西安专业网站制作公司有哪些,陕西省建行官方网站?  太原网站制作公司有哪些,网约车营运证查询官网?  如何彻底卸载建站之星软件? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。