8.C++-类的关键字
2018-06-17 21:04:13来源:未知 阅读 ()
在之前学习的C++章节里,可以发现结构体越来越不像C语言里的结构体了
比如,里面可以定义函数,可以定义private/public,结构体名还可以指向父类.
但是C++需要兼容C,所以C++中便提供了新的关键字class用来定义类
class
关键字class和struct用法完全相同(struct A == class B)
class与struct区别(如下图)
在struct中,所有成员的默认访问级别为pubilc
在class中,所有成员的默认访问级别为private
在以后的学习里,就专门使用class来定义类了,接下来做一个类
小实例-开发一个用于四则运算的类
-提供setOperator函数设置运算类型
-提供setParameter函数设置运算参数
-提供result函数进行运算
- 返回值表示运算的合法性
- 通过引用参数返回结果
通过operator.h头文件声明类,通过operator.cpp源文件来实现类
operator.h文件
#ifndef _OPERATOR_H_ #define _OPERATOR_H_ class Operator { private: char memOp; double memP1; double memP2;
public: bool SetOperator(char Op); void SetParameter(double P1,double P2); bool result(double & val); }; #endif
operator.cpp文件
#include "operator.h" bool Operator::SetOperator(char Op) { bool err=false; if(Op == '+'||Op == '-'||Op == '*'||Op == '/') { memOp= Op; err=true; } return err; } void Operator::SetParameter(double P1,double P2) { memP1=P1; memP2=P2; }
bool Operator::result(double & val) { bool err=true; switch(memOp) { case '+': val = memP1+memP2; break; case '-': val = memP1-memP2; break; case '*': val = memP1*memP2; break; case '/': if( (-0.000000001 < memP1) && (memP2 < 0.000000001) ) { err= false; } else { val = memP1/memP2; } break; default: err=false; break; } return err; }
Test.cpp文件
#include <stdio.h> #include "operator.h" int main() { Operator Op; double val=0; Op.SetOperator('/'); Op.SetParameter(9,3); if(Op.result(val)) { printf("val=%lf\n",val); } else { printf("CALL ERR\n"); } return 0; }
编译运行:
小结
- C++引进了新的关键字class定义类
- struct和class区别在于默认访问级别不同
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 关键字decltype 2020-05-30
- C++中strcpy_s() 2020-04-09
- c++中的 static 关键字 2020-02-15
- C++关键字总结【新手必学】 2019-12-29
- 可变lambda, lambda使用mutable关键字 2019-10-12
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash