C++深入探索类真正的形态之struct与class
目录
一、类的关键字二、类的真正形态三、小实例四、小结一、类的关键字
struct 在 C 语言中已经有了自己的含义,必须继续兼容在C++ 中提供了新的关键字 class 用于类定义class 和 struct 的用法是完全相同的在用 struct 定义类时,所有成员的默认访问级别为 public在用 class 定义类时,所有成员的默认访问级别为 private如下:
下面看一段使用 class 的代码:
#includestruct A { // defualt to public int i; // defualt to public int getI() { return i; } }; class B { // defualt to private int i; // defualt to private int getI() { return i; } }; int main() { A a; B b; a.i = 4; printf("a.getI() = %d\n", a.getI()); b.i = 4; printf("b.getI() = %d\n", b.getI()); return 0; }
下面为输出结果,运行报错,指出 class 声明的类,所有成员的默认访问级别为 private
在 class B 里面加个 public 即可,如下:
class B { public: // defualt to private int i; // defualt to private int getI() { return i; } };
下面为输出结果:
二、类的真正形态
C++ 中的类支持声明和实现的分离
将类的实现和定义分开
.h头文件中只有类的声明成员变量和成员函数的声明.cpp源文件中完成类的其它实现成员函数的具体实现三、小实例
需求:开发一个用于四则运算的类
提供 setOperator 函数设置运算类型
提供 setParameter 函数设置运算参数
提供 result 函数进行运算
其返回值表示运算的合法性通过引用参数返回结果代码如下:
Operator.h
#ifndef _OPERATOR_H_ #define _OPERATOR_H_ class Operator { private: char mOp; double mP1; double mP2; public: bool setOperator(char op); void setParameter(double p1, double p2); bool result(double& r); }; #endif
Operator.cpp
#include "Operator.h" bool Operator::setOperator(char op) { bool ret = false; if( (op == "+") || (op == "-") || (op == "*") || (op == "/") ) { ret = true; mOp = op; } else { mOp = "\0"; } return ret; } void Operator::setParameter(double p1, double p2) { mP1 = p1; mP2 = p2; } bool Operator::result(double& r) { bool ret = true; switch( mOp ) { case "/": if( (-0.000000001 < mP2) && (mP2 < 0.000000001) ) { ret = false; } else { r = mP1 / mP2; } break; case "+": r = mP1 + mP2; break; case "*": r = mP1 * mP2; break; case "-": r = mP1 - mP2; break; default: ret = false; break; } return ret; }
test.cpp
#include#include "Operator.h" int main() { Operator op; double r = 0; op.setOperator("/"); op.setParameter(9, 3); if( op.result(r) ) { printf("r = %lf\n", r); } else { printf("Calculate error!\n"); } return 0; }
下面为输出结果:
四、小结
C++ 引进了新的关键字 class 用于定义类
struct 和 class 的区别在于默认访问级别的不同
C++ 中的类支持声明和实现的分离
在头文件中声明类在源文件中实现类到此这篇关于C++深入探索类真正的形态是的文章就介绍到这了,更多相关C++类的形态内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?