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

C++ 类方法解析:内外定义、参数、访问控制与静态方法详解

C++ 类方法

类方法,也称为成员函数,是属于类的函数。它们用于操作或查询类数据,并封装在类定义中。类方法可以分为两种类型:

  • 类内定义方法: 直接在类定义内部声明和定义方法。
  • 类外定义方法: 在类定义内部声明方法,并在类外部单独定义方法。

类内定义方法

在类定义内部可以直接声明和定义方法,这是一种简洁的方式。

示例:

class Person {
public:void introduce() {cout << "Hello, my name is " << name << endl;}string name; // 属性
};int main() {Person p1;p1.name = "Alice";p1.introduce(); // 调用类内定义的方法return 0;
}

在这个例子中,Person 类包含了一个名为 introduce() 的方法,用于打印对象的姓名。

类外定义方法

为了提高代码的可读性和维护性,有时会将方法定义移至类外部。这种情况下,需要在类内部先声明方法,然后再在类外部单独定义方法。

示例:

class Person {
public:void introduce(); // 方法声明string name; // 属性
};// 在类外部定义方法
void Person::introduce() {cout << "Hello, my name is " << name << endl;
}int main() {Person p1;p1.name = "Bob";p1.introduce(); // 调用类外定义的方法return 0;
}

方法参数

类方法可以包含参数,用于传递数据并影响方法的行为。

示例:

class Calculator {
public:int add(int a, int b); // 声明带两个参数的方法int subtract(int a, int b); // 声明带两个参数的方法
};// 在类外部定义方法
int Calculator::add(int a, int b) {return a + b;
}int Calculator::subtract(int a, int b) {return a - b;
}int main() {Calculator calc;int sum = calc.add(5, 3); // 调用带参数的方法int difference = calc.subtract(10, 7);cout << "Sum: " << sum << endl;cout << "Difference: " << difference << endl;return 0;
}

在这个例子中,Calculator 类包含了两个方法:add()subtract(),用于计算两个数字的和和差。这两个方法都包含两个参数,分别表示要计算的数字。

访问控制

类方法的访问权限可以通过访问控制修饰符来控制,例如 publicprivateprotected

  • public:方法可以在类外部的任何地方调用。
  • private:方法只能在类的内部调用。
  • protected:方法可以在类的内部或其子类中调用。

静态方法

静态方法与类本身相关,而不是与特定对象的实例相关。静态方法不需要创建对象就可以调用,通常用于定义与类相关的实用程序函数。

要声明静态方法,请在方法声明前使用 static 关键字。

示例:

class MathUtils {
public:static int square(int x); // 声明静态方法static int cube(int x); // 声明静态方法
};// 在类外部定义静态方法
int MathUtils::square(int x) {return x * x;
}int MathUtils::cube(int x) {return x * x * x;
}int main() {int result1 = MathUtils::square(5); // 调用静态方法int result2 = MathUtils::cube(3);cout << "Square: " << result1 << endl;cout << "Cube: " << result2 << endl;return 0;
}

在这个例子中,MathUtils 类包含了两个静态方法:square()cube(),用于计算数字的平方和立方。这些方法不需要创建对象就可以调用,直接使用类名即可。

总结

类方法是 C++ 面向对象编程的重要组成部分,用于封装类行为并提供对类数据的操作。通过理解类内和类外定义方法、方法参数、访问控制和静态方法等概念,您可以有效地利用类方法来构建

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

http://www.lryc.cn/news/361893.html

相关文章:

  • pytorch+YOLOv8-1
  • JavaScript 基础 - 对象
  • 代码随想录第23天|回溯part3 组合与分割
  • nginx和proxy_protocol协议
  • 【pytorch】数据转换/增强后保存
  • 超越Devin!姚班带队,他们创大模型编程新世界纪录
  • 江苏大信环境科技有限公司:环保领域的开拓者与引领者
  • 关于 Bean 容器的注入方式,99 % 的人都答不全!
  • Spring的@Async注解及其用途
  • JS(DOM、事件)
  • 学习小心意——python的构造方法和析构方法
  • GB/T 23995-2009 室内装饰装修用溶剂型醇酸木器涂料检测
  • Maven 中的 classifier 属性用过没?
  • Linux网络编程:传输层协议|UDP|TCP
  • MongoDB CRUD操作:内嵌文档查询
  • JavaScript、Kotlin、Flutter可以开发鸿蒙APP吗?
  • 刚体运动描述:欧拉角与四元数
  • 一文速通23种设计模式——单例模式、工厂模式、建造者模式、原型模式、代理模式、装饰器模式、组合模式、组合模式、桥接模式、观察者模式、策略模式……
  • Lua 基础 04 模块
  • 速递FineWeb:一个拥有无限潜力的15T Tokens的开源数据集
  • HDLBits答案汇总
  • 云端数据提取:安全、高效地利用无限资源
  • Java开发:Spring Boot 实战教程
  • 【Python3.11版本利用whl文件安装对应的dlib-19.24.1-cp311-cp311-win_amd64.whl库】
  • HW面试常见知识点2——研判分析(蓝队中级版)
  • 鲁教版七年级数学下册-笔记
  • 带你走进在线直线度测量仪 解析测量方法!
  • 力扣1 两数之和
  • AndroidFlutter混合开发
  • Halcon 光度立体 缺陷检测