跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
C++ 类声明
”︁(章节)
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= C++类声明 = '''类声明'''是C++面向对象编程的核心概念之一,它定义了对象的蓝图,包括数据成员(属性)和成员函数(方法)。类是C++中实现封装、继承和多态的基础结构。 == 基本语法 == C++中使用<code>class</code>关键字声明类,基本语法结构如下: <syntaxhighlight lang="cpp"> class ClassName { access_specifier: // 成员变量(属性) data_type member_variable; // 成员函数(方法) return_type member_function(parameters); }; </syntaxhighlight> 其中: * <code>access_specifier</code>可以是<code>public</code>、<code>private</code>或<code>protected</code> * 类声明以分号<code>;</code>结束 === 访问修饰符 === <mermaid> classDiagram class AccessSpecifiers { +public -private #protected } </mermaid> * '''public''':在任何地方都可以访问 * '''private''':只能在类内部访问(默认) * '''protected''':类内部和派生类中可以访问 == 示例代码 == 下面是一个简单的<code>Rectangle</code>类声明示例: <syntaxhighlight lang="cpp"> #include <iostream> using namespace std; class Rectangle { private: double length; double width; public: // 成员函数声明 void setDimensions(double l, double w); double calculateArea(); void display(); }; // 成员函数定义 void Rectangle::setDimensions(double l, double w) { length = l; width = w; } double Rectangle::calculateArea() { return length * width; } void Rectangle::display() { cout << "Rectangle with length: " << length << ", width: " << width << ", area: " << calculateArea() << endl; } int main() { Rectangle rect; rect.setDimensions(5.0, 3.0); rect.display(); return 0; } </syntaxhighlight> '''输出:''' <pre> Rectangle with length: 5, width: 3, area: 15 </pre> == 类声明与定义 == C++中类声明可以分开为两部分: 1. '''声明'''(头文件中):描述类的结构 2. '''定义'''(源文件中):实现成员函数 === 头文件示例 === <syntaxhighlight lang="cpp"> // rectangle.h #ifndef RECTANGLE_H #define RECTANGLE_H class Rectangle { private: double length; double width; public: void setDimensions(double l, double w); double calculateArea(); void display(); }; #endif </syntaxhighlight> === 源文件示例 === <syntaxhighlight lang="cpp"> // rectangle.cpp #include "rectangle.h" #include <iostream> void Rectangle::setDimensions(double l, double w) { /* 实现 */ } double Rectangle::calculateArea() { /* 实现 */ } void Rectangle::display() { /* 实现 */ } </syntaxhighlight> == 实际应用案例 == 考虑一个银行账户管理系统,我们可以声明一个<code>BankAccount</code>类: <syntaxhighlight lang="cpp"> class BankAccount { private: string accountNumber; string accountHolder; double balance; public: BankAccount(string num, string holder, double initial); void deposit(double amount); bool withdraw(double amount); void displayBalance(); string getAccountInfo(); }; </syntaxhighlight> == 高级特性 == === 内联函数 === 类声明中定义的函数默认为内联函数: <syntaxhighlight lang="cpp"> class Circle { private: double radius; public: double getRadius() const { return radius; } // 内联函数 }; </syntaxhighlight> === 静态成员 === 使用<code>static</code>关键字声明类级别的成员: <syntaxhighlight lang="cpp"> class Counter { private: static int count; // 静态成员变量 public: Counter() { count++; } static int getCount() { return count; } // 静态成员函数 }; </syntaxhighlight> == 类与结构体的区别 == {| class="wikitable" |- ! 特性 !! class !! struct |- | 默认访问权限 || private || public |- | 继承默认访问权限 || private || public |- | 用途 || 面向对象设计 || 数据聚合 |} == 数学表示 == 类可以形式化表示为: <math> C = (D, M) </math> 其中: * <math>D</math>是数据成员的集合 * <math>M</math>是成员函数的集合 == 最佳实践 == 1. 使用有意义的类名(名词或名词短语) 2. 遵循单一职责原则 3. 数据成员通常设为private 4. 成员函数按功能分组 5. 考虑使用const成员函数 6. 大型类考虑使用头文件和源文件分离 == 常见错误 == * 忘记类声明末尾的分号 * 混淆类声明和类实例化 * 访问private成员而不通过public接口 * 循环包含头文件 == 总结 == C++类声明是构建面向对象程序的基础,它封装了数据和行为,提供了访问控制机制。理解类声明的各个方面对于编写可维护、可扩展的C++代码至关重要。 [[Category:编程语言]] [[Category:C++]] [[Category:C++ 面向对象基础]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)