8.C++-类的关键字
在之前学习的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=; Op.SetOperator('/');
Op.SetParameter(,); if(Op.result(val))
{
printf("val=%lf\n",val);
}
else
{
printf("CALL ERR\n");
}
return ;
}
编译运行:
小结
- C++引进了新的关键字class定义类
- struct和class区别在于默认访问级别不同
8.C++-类的关键字的更多相关文章
- WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配
原文:WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 网上的 ...
- 31 面向对象编程 接口 普通类:只有具体实现 声明类的关键字是class,声明接口关键字是interface 接口的作用
接口 概念 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有! 接口:只有规范!自己无法写方法!专业的约束!约束和实现分离:面向接口编程~ 接口就是规范,定义的是一组规则,体现了现实世界中 ...
- PHP面向对象学习四 类的关键字
1.关键字:final 用来定义类和方法的一个重要关键字,当定义类的时候该类将不能被继承, 当用来定义方法的时候该方法将不能被重载 2.关键字:static 用来定义类的静态属性或方法,可以在类未被实 ...
- JAVA类与对象(三)----类定义关键字详解
static 表示静态,它可以修饰属性,方法和代码块. 1.static修饰属性(类变量),那么这个属性就可以用类名.属性名来访问,也就是使这个属性成为本类的类变量,为本类对象所共有.这个属性就是全类 ...
- com.google.gson的SerializedName解决实体类与关键字的重名
使用google的gson包,解决实体类中字段与java关键字的重名: // 比如 当实体类中有switch关键字时,解决冲突如下 @SerializedName("switch" ...
- Java Object类 instanceof关键字 练习:判断是否为同一人 集合按照人的年龄排序,如果年龄相同按名字的字母顺序升序 Comparator比较器
package com.swift; public class Same_Person_Test { public static void main(String[] args) { /* * Obj ...
- 【C# 线程】 volatile 关键字和Volatile类、Thread.VolatileRead|Thread.VolatileWrite 详细 完整
overview 同步基元分为用户模式和内核模式 用户模式:Iterlocked.Exchange(互锁).SpinLocked(自旋锁).易变构造(volatile关键字.volatile类.Thr ...
- 用CIL写程序:定义一个叫“慕容小匹夫”的类
前文回顾: <用CIL写程序:你好,沃尔德> <用CIL写程序:写个函数做加法> 前言: 今天是乙未羊年的第一天,小匹夫先在这里给各位看官拜个年了.不知道各位看官是否和匹夫一样 ...
- 【C++】继承(虚基类)
类的继承与派生 面向对象技术强调软件的可重用性,这种重用性通过继承机制来实现.而在类的继承过程中,被重用的原有类称为基类,新创建的类称为派生类.派生类定义语法格式如下: class <派生类名& ...
随机推荐
- 基于layui和bootstrap搭建极简后台管理框架
年前无聊,想自己搭建一个后台管理框架,对比了easyui.Extjs.H-ui.H+UI.layui几个框架,easyui和Extjs虽然功能强大但是界面实在是接受不了,H+UI和layuiAdmin ...
- js作用域的相关知识
众所周知,在ES6之前,JavaScript是没有块级作用域的,如下图所示: 学过其他语言的同学肯定有点诧异,为什么会这样呢?因为js还是不同于其他语言的,在ES5中,只有全局作用域和函数作用域,并没 ...
- PHP的 first day of 和 last day of
话不多说,先上代码(当前是2017年6月2日) echo date("Y-m-d", strtotime("2017-02 first day of")).'& ...
- openwrt pptpd客户端
步骤 opkg update opkg install ppp-mod-pptp opkg install luci-proto-ppp 在OpenWRT安裝PPTP Client端 首先用ssh登陆 ...
- sql server在一个字段相同值时,另一个字段结果拼接
如下字段红框里的信息都一样的,通过转换实现字段拼接 SELECT formmain_id,(SELECT field0040+';' FROM formson_5489 WHERE formmain_ ...
- CEF小白人系列2-DEV环境配置-Windows10+SDK+VS2015
以下资料整理来自CEF官方教学.作者做了翻译和整理.并会以一种重事件操作的方式来一点点入门. 3个问题: 在上一篇内容中我们了解了什么是CEF,能干些什么.必要的物理学习环境. 下面我们也是以带着问题 ...
- ARM平台的虚拟化介绍
本篇博文主要介绍虚拟化的基本思想以及在arm平台如何做虚拟化,arm提供的硬件feature等等. 虚拟化技术简介 虚拟化技术 虚拟化是一个概念,单从这个概念的角度来看,只要是用某一种物品去模拟另一种 ...
- js内存泄露的原因
1.意外的全局变量 function fun(){ a=19//全局变量 console.log(a) } 2.未及时清理计时器或者回调函数 //记得及时清理定时器 var intervalId=se ...
- PHP对象和接口抽象类注意事项
Php 的对象的实现: 注:对象名称最好以对象名.class.php来进行命名. 1. 对于静态类的成员不能使用$this->这个来调用其静态类的成员和函数,应该使用self::成员或者方法来进 ...
- js中的isNaN()函数
<html> <head> <script type="text/javascript" src="function.js"> ...